Heim > Java > javaLernprogramm > Wie formatiere ich ZonedDateTime effizient für die JSON-Serialisierung in Spring Data JPA?

Wie formatiere ich ZonedDateTime effizient für die JSON-Serialisierung in Spring Data JPA?

Susan Sarandon
Freigeben: 2024-12-20 05:26:09
Original
254 Leute haben es durchsucht

How to Efficiently Format ZonedDateTime for JSON Serialization in Spring Data JPA?

Spring Data JPA: Formatieren von ZonedDateTime für die JSON-Serialisierung

Beim Arbeiten mit JSON kann die Serialisierung von ZonedDateTime-Objekten zu einer ausführlichen Datenübertragung führen. In diesem Artikel geht es um die Formatierung von ZonedDateTime, um übermäßige Datenübertragungen einzudämmen.

Problemhintergrund

ZonedDateTime enthält umfangreiche Informationen zu Datum und Uhrzeit. Standardmäßig erzeugt die JSON-Serialisierung eine umfangreiche Darstellung, die alle ihre Komponenten enthält. Für eine effiziente Datenübertragung ist es wünschenswert, ZonedDateTime präzise zu formatieren, z. B. ISO 8601.

Lösung mit Jacksons JavaTimeModule

Um ZonedDateTime zu formatieren, können wir Jacksons nutzen JavaTimeModule. Fügen Sie die Abhängigkeit zur pom.xml Ihres Projekts hinzu:

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.6.0</version>
</dependency>
Nach dem Login kopieren

Um das Modul zu verwenden, erstellen Sie einen ObjectMapper und registrieren Sie JavaTimeModule:

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
Nach dem Login kopieren

Fügen Sie in Ihrer Entitätsklasse die Annotation @JsonFormat hinzu zum Feld ZonedDateTime:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
private ZonedDateTime lastModifiedDate;
Nach dem Login kopieren

Sample Implementierung

Unten finden Sie eine Beispielentität und ihre JSON-Darstellung:

public class Entity {
    private ZonedDateTime time = ZonedDateTime.now();

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
    public ZonedDateTime getTime() {
        return time;
    }
}
Nach dem Login kopieren

JSON-Ausgabe:

{"time":"2015-07-25T23:09:01.795+0700"}
Nach dem Login kopieren

Hinweis für Jackson 2.4.x Benutzer

Wenn Sie Jackson 2.4.x verwenden, sollten Sie verwenden objectMapper.registerModule(new JSR310Module()); stattdessen.

Durch die Implementierung der oben genannten Lösung können Sie ZonedDateTime effektiv für eine effiziente JSON-Serialisierung formatieren, wodurch unnötige Datenübertragungen reduziert und die Leistung verbessert werden.

Das obige ist der detaillierte Inhalt vonWie formatiere ich ZonedDateTime effizient für die JSON-Serialisierung in Spring Data JPA?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage