首頁 > Java > java教程 > 如何在沒有註解的情況下使用 Jackson 格式化 Java 8 的 LocalDate?

如何在沒有註解的情況下使用 Jackson 格式化 Java 8 的 LocalDate?

DDD
發布: 2024-12-11 01:43:10
原創
372 人瀏覽過

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

使用Jackson 格式化Java 8 的LocalDate

Jackson 基於註釋的java.util.Date 格式無縫擴展到Java 8 中的LocalDate 欄位。為了實現這一點,請避免使用註釋,而是將 Jackson 的 ContextResolver與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;
    }  
}
登入後複製

資源類別:

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;
    }
}
登入後複製

資源類別:

資源類別:

使用這個方法,您應該能夠使用 ISO-8601 格式將 LocalDate 值序列化和反序列化為 JSON 字串。

有關更多信息,請參閱 JSR310 模組文件。

注意: 從 Jackson 版本 2.7 開始,JSR310Module 是已棄用。請改用 JavaTimeModule。

以上是如何在沒有註解的情況下使用 Jackson 格式化 Java 8 的 LocalDate?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板