Sto provando a serializzare le proprietà Joda DateTime come ISO-8601 utilizzando Spring Boot v1.2.0.BUILD-SNAPSHOT Ecco la mia applicazione REST molto semplice.avvio a molla Joda DateTime Serialization
@RestController
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
class Info{
private DateTime dateTime;
public Info(){
dateTime = new DateTime();
}
public DateTime getDateTime() {
return dateTime;
}
public void setDateTime(DateTime dateTime) {
this.dateTime = dateTime;
}
}
@RequestMapping("/info")
Info info() {
return new Info();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public Module getModule(){
return new JodaModule();
}
}
La data ora viene serializzata come un timestamp, ad es. { "DateTime": 1415954873412} Ho provato ad aggiungere
@Bean
@Primary
public ObjectMapper getObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
return objectMapper;
}
ma che non ha aiutato neanche. Quindi, come posso configurare Jackson in Spring Boot per la serializzazione utilizzando il formato ISO-8601? BTW: ho solo aggiunto le seguenti dipendenze al mio Gradle costruire
compile("joda-time:joda-time:2.4")
compile("org.jadira.usertype:usertype.jodatime:2.0.1")
compile("com.fasterxml.jackson.datatype:jackson-datatype-joda:2.4.2");
puoi anche chiamare .setSimpleDateFormat ("aaaa-MM-gg'T'HH: mm: ss.SSSZ"); sul tuo object mapper invece di annotare le classi. – tom
L'unica cosa che funziona è che se io uso l'esempio di annotazione \t \t @JsonFormat (forma = JsonFormat.Shape.STRING, modello = "AAAA-MM-dd'T'HH: mm: ss.SSSZ") Ci deve essere un modo per abilitare tutte le proprietà DateTime. Non voglio dover annotare tutte le proprietà – edge66
Non sono sicuro che sia d'aiuto, ma probabilmente vale la pena passare alla versione 2.4.3, che è l'ultima versione. Inoltre: se la funzione di sovrascrittura '@ JsonFormat' funziona, ma non si utilizza SerializationFeature.WRITE_DATES_AS_TIMESTAMPS', dovrei presentare un bug al modulo - dovrebbe funzionare come previsto. – StaxMan