关于以下问题:
Jersey + Jackson JSON日期格式序列化 - 如何更改格式或使用自定义JacksonJsonProvider。
我想知道
- Jackson是否规定json日期格式应标准化为Unix时间整数?
后续问题...
- 最近有没有改变其立场?
- 日期格式不应该标准化为jaxb xml输出提供的相同格式吗?
- 为什么/为什么不?
- 是否已经付出努力解决这个问题?
- RestEasy是否提供了一个JSON提供者缓解,可以以一般可识别的日期格式输出JSON日期?
关于以下问题:
Jersey + Jackson JSON日期格式序列化 - 如何更改格式或使用自定义JacksonJsonProvider。
我想知道
后续问题...
抱歉大家,因为我找到了这里的答案而大声喊叫
http://wiki.fasterxml.com/JacksonFAQDateHandling,
这里
http://wiki.fasterxml.com/JacksonFAQ#Serializing_Dates,
这里
http://wiki.fasterxml.com/JacksonHowToCustomSerializers
这里
http://jackson.codehaus.org/1.1.2/javadoc/org/codehaus/jackson/map/util/StdDateFormat.html
使用 @JsonSerialize(using= ... ) 的方式:
public class JsonStdDateSerializer
extends JsonSerializer<Date> {
private static final DateFormat iso8601Format =
StdDateFormat.getBlueprintISO8601Format();
@Override
public void serialize(
Date date, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
// clone because DateFormat is not thread-safe
DateFormat myformat = (DateFormat) iso8601Format.clone();
String formattedDate = myformat.format(date);
jgen.writeString(formattedDate);
}
}
ObjectMapper om = new ObjectMapper();
om.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
om.writer().writeValue(System.out, objectWithDateProperty);
我不知道如何在对象定义本身上以声明的方式完成相同的操作。