Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Memformat LocalDate Java 8 dengan Jackson Tanpa Anotasi?

Bagaimanakah Saya Boleh Memformat LocalDate Java 8 dengan Jackson Tanpa Anotasi?

DDD
Lepaskan: 2024-12-11 01:43:10
asal
452 orang telah melayarinya

How Can I Format Java 8's LocalDate with Jackson Without Annotations?

Memformatkan LocalDate Java 8 dengan Jackson

Pemformatan berasaskan anotasi Jackson untuk java.util.Date dilanjutkan dengan lancar ke medan LocalDate dalam Java 8. Untuk mencapai matlamat ini, elakkan menggunakan anotasi dan sebaliknya gunakan Jackson's ContextResolver bersama-sama dengan the JavaTimeModule.

ContextResolver:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;

@Provider
public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> {  
    private final ObjectMapper MAPPER;

    public ObjectMapperContextResolver() {
        MAPPER = new ObjectMapper();
        MAPPER.registerModule(new JavaTimeModule());
        MAPPER.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    }

    @Override
    public ObjectMapper getContext(Class<?> type) {
        return MAPPER;
    }  
}
Salin selepas log masuk

Kelas Sumber:

import java.time.LocalDate;

@Path("person")
public class LocalDateResource {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response getPerson() {
        Person person = new Person();
        person.birthDate = LocalDate.now();
        return Response.ok(person).build();
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response createPerson(Person person) {
        return Response.ok(
                DateTimeFormatter.ISO_DATE.format(person.birthDate)).build();
    }

    public static class Person {
        public LocalDate birthDate;
    }
}
Salin selepas log masuk

Ujian:

Dengan menggunakan pendekatan ini, anda seharusnya dapat menyusun dan nyahserialisasi nilai LocalDate sebagai rentetan JSON menggunakan format ISO-8601.

Untuk maklumat lanjut, rujuk dokumentasi modul JSR310.

Nota:

Mulai Jackson versi 2.7, JSR310Module tidak digunakan lagi. Gunakan JavaTimeModule sebaliknya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memformat LocalDate Java 8 dengan Jackson Tanpa Anotasi?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan