382 Stimmen

serialize/deserialize Java 8 Java.time mit Jackson JSON mapper

Wie verwende ich den Jackson JSON-Mapper mit Java 8 LocalDateTime?

org.codehaus.jackson.map.JsonMappingException: Kann den Wert des Typs [einfachen Typs, Klasse java.time.LocalDateTime] nicht aus JSON-String instanziieren; kein einzelner String-Konstruktor/Fabrikmethode vorhanden (durch Verweisreihe: MyDTO["field1"]->SubDTO["date"])

4voto

ifelse.codes Punkte 1929
            com.fasterxml.jackson.module
            jackson-module-parameter-names

            com.fasterxml.jackson.datatype
            jackson-datatype-jdk8

            com.fasterxml.jackson.datatype
            jackson-datatype-jsr310

fügen Sie diese Abhängigkeiten hinzu und aktivieren Sie diese Module. Das sollte helfen

    private static final ObjectMapper mapper = new ObjectMapper().findAndRegisterModules();

3voto

sonnees2012 Punkte 29
@JsonFormat(Muster = "yyyy-MM-dd HH:mm")
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime priceDateTime;

2voto

VC2019 Punkte 465

Wenn Sie Spring Boot verwenden und dieses Problem mit OffsetDateTime haben, müssen Sie die registerModules wie oben von @greperror beantwortet verwenden (beantwortet am 28. Mai '16 um 13:04), aber beachten Sie, dass es einen Unterschied gibt. Die erwähnte Abhängigkeit muss nicht hinzugefügt werden, da ich vermute, dass Spring Boot sie bereits hat. Ich hatte dieses Problem mit Spring Boot und es hat bei mir funktioniert, ohne diese Abhängigkeit hinzuzufügen.

2voto

Janki Punkte 161

Sie können dies in Ihrer application.yml Datei festlegen, um die Instant-Zeit aufzulösen, die die Date API in Java 8 ist:

spring.jackson.serialization.write-dates-as-timestamps=false

2voto

Taras Melnyk Punkte 2711

Ich verwende dieses Zeitformat: "{birthDate": "2018-05-24T13:56:13Z}", um aus JSON in java.time.Instant zu deserialisieren (siehe Screenshot)

Bildbeschreibung hier eingeben

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X