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
370 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!

sumber:php.cn
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