Rumah > Java > javaTutorial > Bagaimana Memformat Objek Java 8 LocalDate dengan betul dalam JSON menggunakan Jackson?

Bagaimana Memformat Objek Java 8 LocalDate dengan betul dalam JSON menggunakan Jackson?

Mary-Kate Olsen
Lepaskan: 2024-12-30 01:54:08
asal
373 orang telah melayarinya

How to Properly Format Java 8 LocalDate Objects in JSON using Jackson?

Memformat Java 8 LocalDate dengan Jackson

Masalah:

Dalam aplikasi Java, menukar Tarikh objek ke dalam format JSON dengan corak tarikh tertentu boleh menjadi mudah menggunakan anotasi @JsonFormat. Walau bagaimanapun, apabila berurusan dengan java.time.LocalDate yang diperkenalkan dalam Java 8, pendekatan yang sama mungkin tidak berfungsi seperti yang diharapkan.

Penyelesaian Cadangan:

Untuk menyesuaikan pemformatan Objek LocalDate untuk siri JSON, pendekatan berikut boleh digunakan:

  1. Konfigurasikan Jackson ObjectMapper:
  2. Buat pelaksanaan ContextResolver untuk ObjectMapper.
  3. Daftar JavaTimeModule dalam ObjectMapper untuk menyokong siri LocalDate.
  4. Dayakan ciri WRITE_DATES_AS_TIMESTAMPS kepada false, sebagai LocalDate mewakili tarikh tanpa cap waktu.
  5. Gunakan ContextResolver dalam Aplikasi JAX-RS:
  6. Tentukan kelas perkhidmatan JAX-RS dengan anotasi @Provider.
  7. Laksanakan antara muka ObjectMapperContextResolver untuk menyediakan yang dikonfigurasikan ObjectMapper.
  8. Anotasi Kelas Sumber untuk Penukaran JSON:
  9. Tambah anotasi @JsonDeserialize dan @JsonSerialize dengan kelas deserializer dan serializer yang betul untuk mengendalikan penukaran LocalDate.

Contoh Kod:

Penyelesaikan Konteks:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;

@Provider
public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> {
    @Override
    public ObjectMapper getContext(Class<?> type) {
        ObjectMapper mapper = new ObjectMapper();
        mapper.registerModule(new JavaTimeModule());
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        return mapper;
    }
}
Salin selepas log masuk

Kelas Sumber:

import java.time.LocalDate;

@Path("person")
public class LocalDateResource {
    @GET
    public Person getPerson() {
        return new Person(LocalDate.now());
    }
}
Salin selepas log masuk

Orang Kelas:

public class Person {
    @JsonDeserialize(using = LocalDateDeserializer.class)
    @JsonSerialize(using = LocalDateSerializer.class)
    private LocalDate birthDate;
}
Salin selepas log masuk

Dengan melaksanakan pendekatan ini, Objek LocalDate boleh disiri dan dinyahsiri dengan berkesan, membolehkan pemformatan JSON yang fleksibel.

Atas ialah kandungan terperinci Bagaimana Memformat Objek Java 8 LocalDate dengan betul dalam JSON menggunakan Jackson?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan