相关疑难解决方法(0)

Jersey + Jackson JSON日期格式序列化 - 如何更改格式或使用自定义JacksonJsonProvider

我正在使用Jersey + Jackson为我的应用程序提供REST JSON服务层.我遇到的问题是默认的日期序列化格式如下所示:

"CreationDate":1292236718456
Run Code Online (Sandbox Code Playgroud)

起初我以为它是一个UNIX时间戳......但它太长了.我的客户端JS库在反序列化这种格式时遇到了问题(它支持一堆不同的日期格式,但我认为不支持这种格式).我想更改格式,以便我的库(例如ISO)可以使用它.我该怎么做...我找到了一段可以帮助的代码,但是......我把它放在哪里因为我不控制杰克逊序列化器实例化(泽西岛)?

objectMapper.configure(
    SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
Run Code Online (Sandbox Code Playgroud)

我也发现这个代码用于自定义JacksonJsonProvider- 问题是..如何让我所有的POJO类使用它?

@Provider
public class MessageBodyWriterJSON extends JacksonJsonProvider {

    private static final String DF = "yyyy-MM-dd’T'HH:mm:ss.SSSZ";

    @Override
    public boolean isWriteable(Class arg0, Type arg1, Annotation[] arg2,
            MediaType arg3) {
        return super.isWriteable(arg0, arg1, arg2,
                arg3);
    }
    @Override
    public void writeTo(Object target, Class arg1, Type arg2, Annotation[] arg3,
            MediaType arg4, MultivaluedMap arg5, OutputStream outputStream)
            throws IOException, WebApplicationException {
            SimpleDateFormat sdf=new SimpleDateFormat(DF);

        ObjectMapper om = new ObjectMapper();
        om.getDeserializationConfig().setDateFormat(sdf);
        om.getSerializationConfig().setDateFormat(sdf);
        try {
            om.writeValue(outputStream, target); …
Run Code Online (Sandbox Code Playgroud)

java serialization jax-rs jersey jackson

37
推荐指数
3
解决办法
7万
查看次数

标签 统计

jackson ×1

java ×1

jax-rs ×1

jersey ×1

serialization ×1