Fir*_*mir 15 spring json spring-mvc jodatime jackson
我有以下用于JodaTime处理的Serializer:
public class JodaDateTimeJsonSerializer extends JsonSerializer<DateTime> {
private static final String dateFormat = ("MM/dd/yyyy");
@Override
public void serialize(DateTime date, JsonGenerator gen, SerializerProvider provider)
throws IOException, JsonProcessingException {
String formattedDate = DateTimeFormat.forPattern(dateFormat).print(date);
gen.writeString(formattedDate);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在每个模型对象上,我这样做:
@JsonSerialize(using=JodaDateTimeJsonSerializer.class )
public DateTime getEffectiveDate() {
return effectiveDate;
}
Run Code Online (Sandbox Code Playgroud)
通过以上设置,@ResponseBody
Jackson Mapper确实有效.但是,我不喜欢我一直在写的想法@JsonSerialize
.我需要的是没有@JsonSerialize
on模型对象的解决方案.是否可以将此配置在spring xml中的某个位置编写为一个配置?
感谢您的帮助.
Moe*_*sio 11
虽然您可以为每个日期字段添加注释,但最好为对象映射器执行全局配置.如果您使用jackson,您可以按如下方式配置弹簧:
<bean id="jacksonObjectMapper" class="com.company.CustomObjectMapper" />
<bean id="jacksonSerializationConfig" class="org.codehaus.jackson.map.SerializationConfig"
factory-bean="jacksonObjectMapper" factory-method="getSerializationConfig" >
</bean>
Run Code Online (Sandbox Code Playgroud)
对于CustomObjectMapper:
public class CustomObjectMapper extends ObjectMapper {
public CustomObjectMapper() {
super();
configure(Feature.WRITE_DATES_AS_TIMESTAMPS, false);
setDateFormat(new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'ZZZ (z)"));
}
}
Run Code Online (Sandbox Code Playgroud)
当然,SimpleDateFormat可以使用您需要的任何格式.
归档时间: |
|
查看次数: |
14816 次 |
最近记录: |