Tengo una API que toma solicitudes y genera JSON devuelto. Ese JSON se genera utilizando el objeto a continuación y mi clase de utilidad.
Cuando se devuelve el JSON a la aplicación, en realidad utilizo exactamente la misma clase de utilidad para serializar el JSON nuevamente en el objeto.
Sin embargo, obtengo una excepción (ver más abajo). ¿Cómo puedo evitar eso? He intentado casi todo lo que puedo encontrar en línea, no he tenido suerte.
Objeto:
public class MyPerson() {
private String name;
private Date lastEdited;
}
Clase de utilidad para convertir:
public class GsonUtils {
private static final Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'hh:mm:ss")
.create();
public static String deserializeObjectToJSON(Object obj) {
return gson.toJson(obj);
}
public static <T> Object serializeObjectFromJSON(String json, Class<T> classType) {
return gson.fromJson(json, classType);
}
public static <T> List<T> serializeListOfObjectsFromJSON(String json, Type listType) {
return gson.fromJson(json, listType);
}
}
Error:
Caused by: java.text.ParseException: Failed to parse date ["2019-02-12T12:00:00.0"]: No time zone indicator at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:274) ~[gson-2.8.5.jar:na] at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:85) ~[gson-2.8.5.jar:na] ... 66 common frames omitted
Editar:
Tomó las sugerencias y actualizó la clase de utilidad, mismo error:
Caused by: java.text.ParseException: Failed to parse date ["2019-02-12T12:00:00.0"]: No time zone indicator
at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:274) ~[gson-2.8.5.jar:na]
at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:85) ~[gson-2.8.5.jar:na]
... 66 common frames omitted
yyyy-MM-dd'T'hh:mm:ss.S
pon esto como tu formato de fecha
Resolvió el problema
Cambié el formato a -
private static final Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.S'Z'")
.create();
Este enlace me ayudó a resolver mi problema (el formato de hora UTC era lo que quería):
Fecha de Java a UTC usando gson
A continuación se muestra mi archivo application.properties spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver spring.datasource.url = jdbc: mysql: // localhost: 3306 / test? AutoReconnect = true spring.datasource ....
Estoy tratando de implementar una búsqueda lineal usando matrices. Se supone que debe buscar el nombre de una persona, devolver el número respectivo si el nombre existe y devolver -1 si no existe. Tengo pruebas de junit ...
He conectado SoapUI en Eclipse. Necesito saber cómo adjuntar los archivos Xml en SOAPUI. Por favor, ayúdame ... Gracias de antemano Saludos Michael-aes
Tengo un enum FooBar en la clase Clazz con falues FOO y BAR así: class Clazz {enum FooBar {FOO, BAR}} Ahora me gustaría usar el método wicket getString () para localizar ...