2017-02-15 5 views
0

Ich habe ein Projekt ohne Spring Boot, aber es verwendet einige Federmodule wie "Federdaten" und "Federdaten Rest".Spring Data Rest und java.time Serialisierung

Ich habe ein Problem mit der Serialisierung der java.time. * - Felder. Ich habe einige Tutorials wie this gefunden, aber auch wenn ich die folgende Abhängigkeit

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jsr310</artifactId> 
    <version>${jackson.version}</version> 
</dependency> 

und den folgenden Code in meinem RepositoryRestConfigurerAdapter

@Component public class CvlRepositoryRestConfigurerAdapter extends RepositoryRestConfigurerAdapter { 

@Override 
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { 
    config.setDefaultPageSize(75); 
    config.setReturnBodyForPutAndPost(Boolean.TRUE); 
} 

@Override 
public void configureJacksonObjectMapper(ObjectMapper objectMapper) { 
    super.configureJacksonObjectMapper(objectMapper); 
    objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false); 
} 

}

meine tatsächliche Antwort in Bezug auf ein Java hinzufügen. Das Zeitfeld ist wie folgt

"rateDate": { " Jahr“: 2017 "Monat": "Februar", "TagDesMonats": 14, "dayOfWeek": "Dienstag", "Ära": "CE", "DAYOFYEAR": 45, "LeapYear" : false, "monthValue": 2, "Chronologie": { "id": "ISO", "calendarType": "ISO8601" }

Was ich falsch mache? Was ich vergesse?

Antwort

0

hier mein Adapter. Jetzt ist es arbeitet

@Component 
public class CvlRepositoryRestConfigurerAdapter extends RepositoryRestConfigurerAdapter { 

@Override 
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { 
    config.setDefaultPageSize(75); 
    config.setReturnBodyForPutAndPost(Boolean.TRUE); 
} 

@Override 
public void configureJacksonObjectMapper(ObjectMapper objectMapper) { 
    super.configureJacksonObjectMapper(objectMapper); 
    objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false); 
    SimpleModule sm = new SimpleModule("jsr310module"); 
    sm.addSerializer(LocalDate.class,new LocalDateSerializer(DateTimeFormatter.ISO_DATE)); 
    sm.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ISO_DATE)); 
    sm.addSerializer(LocalDateTime.class,new LocalDateTimeSerializer(DateTimeFormatter.ISO_DATE_TIME)); 
    sm.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ISO_DATE_TIME)); 
    objectMapper.registerModule(sm); 
} 

}

Ich brauche nur für Zeitzone (ZonedDateTime Felder) und Codierung zu überprüfen (scheint UTF-8 ist die Standardeinstellung zu sein), und alles wird in Ordnung sein. Hoffe, für jemand anderen nützlich zu sein

Verwandte Themen