首页 > Java > java教程 > 如何在没有注释的情况下使用 Jackson 格式化 Java 8 的 LocalDate?

如何在没有注释的情况下使用 Jackson 格式化 Java 8 的 LocalDate?

DDD
发布: 2024-12-11 01:43:10
原创
384 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板