Nar*_*esh 6 java json jodatime jackson
我在Order类中有一个Joda DateTime:
public class Order {
private DateTime creationTime;
...
}
Run Code Online (Sandbox Code Playgroud)
我已经初始化了我的mapper,如下所示:
mapper.configure(
SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
Run Code Online (Sandbox Code Playgroud)
当我序列化这个类时,我希望看到以ISO-8601格式序列化的creationTime如下
{
"creationTime" : "2011-01-01T09:00:00.000-04:00"
}
Run Code Online (Sandbox Code Playgroud)
这在我的单元测试中工作得非常好.但是,在我的Web应用程序中,完全相同的代码序列化所有DateTime字段:
{
"creationTime" : {
"year" : 2011,
"dayOfMonth" : 17,
"dayOfWeek" : 7,
"era" : 1,
"dayOfYear" : 107,
"weekOfWeekyear" : 15,
"weekyear" : 2011,
"monthOfYear" : 4,
"yearOfEra" : 2011,
"yearOfCentury" : 11,
"centuryOfEra" : 20,
"millisOfSecond" : 590,
"millisOfDay" : 40311590,
"secondOfMinute" : 51,
"secondOfDay" : 40311,
"minuteOfHour" : 11,
"minuteOfDay" : 671,
"hourOfDay" : 11,
"millis" : 1303053111590,
"zone" : {
"fixed" : false,
"uncachedZone" : {
"cachable" : true,
"fixed" : false,
"id" : "America/New_York"
},
"id" : "America/New_York"
},
"chronology" : {
"zone" : {
"fixed" : false,
"uncachedZone" : {
"cachable" : true,
"fixed" : false,
"id" : "America/New_York"
},
"id" : "America/New_York"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?在两种情况下,我都在我的类路径中包含jackson-core-asl-1.7.6.jar和jackson-mapper-asl-1.7.6.jar.
在一些在线示例中,我在DateTime上看到了一个注释.我不知道是否需要这个,但我尝试了它的nevertheness.见下文:
public class Order {
@JsonSerialize(using=DateTimeSerializer.class)
private DateTime creationTime;
...
}
Run Code Online (Sandbox Code Playgroud)
这似乎没什么区别.
谢谢.
PS有谁知道Jackson邮件列表是否有效?我在用户邮件列表中发布了此问题,但它未显示在存档中.档案中的最后一篇文章日期为2010年6月24日.
小智 3
这似乎对我有用: How to serialize Joda DateTime with Jackson JSON process?
基本上,这个想法是创建一个org.codehaus.jackson.map.JsonSerializer使用重写的序列化方法扩展的类:
public void serialize(DateTime value, JsonGenerator gen, SerializerProvider arg2) throws IOException, JsonProcessingException {
gen.writeString(formatter.print(value));
}
Run Code Online (Sandbox Code Playgroud)
然后只需使用该自定义序列化器代替DateTimeSerializer.
| 归档时间: |
|
| 查看次数: |
16935 次 |
| 最近记录: |