【发布时间】:2011-07-03 21:26:36
【问题描述】:
我在 Spring 3 MVC 应用程序中使用 Jackson JSON。为了不序列化每个日期字段,我创建了一个使用特定日期格式的自定义对象映射器:
@Component("jacksonObjectMapper")
public class CustomObjectMapper extends ObjectMapper
{
Logger log = Logger.getLogger(CustomObjectMapper.class);
@PostConstruct
public void afterProps()
{
log.info("PostConstruct... RUNNING");
//ISO 8601
getSerializationConfig().setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ"));
}
//constructors...
}
这个自定义的 ObjectMapper 被注入到 JsonConverter 中:
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
<property name="objectMapper" ref="jacksonObjectMapper" /> <!-- defined in CustomObjectMapper -->
</bean>
日志和序列化工作也不例外,但它没有选择日期格式,它简单地序列化为时间戳。 @PostConstruct 注释有效,方法中的日志语句在日志中。
有人知道为什么会失败吗?
【问题讨论】:
-
这个问题解决了吗?
-
@Sven Haiged 我没有将 json 表示为支持的媒体类型,但是我调试它时,json 包含在支持的媒体类型中并且运行良好。我错过了什么吗?