Rumah >Java >javaTutorial >Bagaimana untuk Memformat ZonedDateTime dengan Cekap untuk Pensirilan JSON dalam Spring Data JPA?

Bagaimana untuk Memformat ZonedDateTime dengan Cekap untuk Pensirilan JSON dalam Spring Data JPA?

Susan Sarandon
Susan Sarandonasal
2024-12-20 05:26:09297semak imbas

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

Spring Data JPA: Memformat ZonedDateTime untuk Pensirilan JSON

Apabila bekerja dengan JSON, siri objek ZonedDateTime boleh mengakibatkan pemindahan data yang berlebihan. Artikel ini membincangkan pemformatan ZonedDateTime untuk mengurangkan pemindahan data yang berlebihan.

Latar Belakang Masalah

ZonedDateTime menyimpan maklumat yang luas tentang tarikh dan masa. Secara lalai, siri JSON menghasilkan perwakilan besar yang merangkumi semua komponennya. Untuk pemindahan data yang cekap, adalah wajar untuk memformatkan ZonedDateTime dengan cara yang ringkas, seperti ISO 8601.

Penyelesaian dengan JavaTimeModule Jackson

Untuk memformat ZonedDateTime, kami boleh memanfaatkan Jackson's JavaTimeModule. Tambahkan kebergantungan pada pom.xml projek anda:

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.6.0</version>
</dependency>

Untuk menggunakan modul, buat ObjectMapper dan daftar JavaTimeModule:

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());

Dalam kelas entiti anda, tambahkan anotasi @JsonFormat ke medan ZonedDateTime:

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

Sampel Pelaksanaan

Di bawah ialah entiti sampel dan perwakilan JSONnya:

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;
    }
}

Output JSON:

{"time":"2015-07-25T23:09:01.795+0700"}

Nota untuk Jackson 2.4.x Pengguna

Jika anda menggunakan Jackson 2.4.x, anda harus menggunakan objectMapper.registerModule(JSR310Module() baharu); sebaliknya.

Dengan melaksanakan penyelesaian di atas, anda boleh memformatkan ZonedDateTime dengan berkesan untuk siri JSON yang cekap, mengurangkan pemindahan data yang tidak perlu dan meningkatkan prestasi.

Atas ialah kandungan terperinci Bagaimana untuk Memformat ZonedDateTime dengan Cekap untuk Pensirilan JSON dalam Spring Data JPA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn