我想将我的序列化程序更改为jackson,所以我可以更改时间戳格式,我试过这样:
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JacksonConfig
implements ContextResolver<ObjectMapper> {
private final ObjectMapper objectMapper;
public JacksonConfig() {
objectMapper = new ObjectMapper();
objectMapper.setDateFormat(new ISO8601DateFormat());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
}
@Override
public ObjectMapper getContext(Class<?> objectType) {
return objectMapper;
}
}
并在ApplicationConfig中:
resources.add(com.rfid.server.helpers.JacksonConfig.class);
它无法正常工作,我仍然将时间戳格式化为: 2014-12-12T17:52:33.35031 + 02:00“
我尝试调试JacksonConfig
,断点来到构造函数,但不是getContext
方法
答案 0 :(得分:0)
根据ISO8601DateFormat和ISO8601 utility class的源代码,杰克逊用来操纵ISO8601格式的日期,您看到的结果就是预期结果。
如果您想要新的日期格式,您应该执行以下操作:
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS"));
答案 1 :(得分:0)
@aribeiro评论似乎没问题。您只需根据您的要求更改数据格式。
确保项目中具有以下依赖关系:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.13</version>
</dependency>