4

我有一个带有 java.util.Date 属性的对象,我正在使用 AE Cloud Endpoints 服务进行序列化。从客户那里,当我只发送一个日期时,一切正常(例如:'2013-05-27')。当我尝试添加时间时,它失败了:

{“错误”:{“消息”:“com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException:无效的日期/时间格式:2013-05-27T12:00(通过参考链:com.foo .MyObject[\"日期\"])" } }

我能找到的杰克逊默认日期格式的最佳资源是:http ://wiki.fasterxml.com/JacksonFAQDateHandling 。我尝试了完整的 ISO-8601 "1970-01-01T00:00:00.000+0000" 也失败了。我还尝试了一个 UNIX 时间戳,它在解析时没有失败,但在 1372 中设置了一个日期。

所以两部分的问题。一,使用的正确默认格式是什么?第二,我们可以修改(我们是否可以访问)jackson 配置,以便我们可以设置自己的序列化格式?

4

1 回答 1

11

看起来它接近 RFC 3339 标准,小数秒似乎需要 3 位精度,例如:

1985-04-12T23:20:50.520Z

Date如果您使用包含字段的自己的 API 进行尝试,这与 APIs Explorer 返回的内容相匹配。

关于自己处理序列化,您无权访问 Jackson 配置,但您可以访问自定义 Endpoints 序列化选项(参见@ApiSerializationProperty示例)。

于 2013-05-29T19:20:10.453 回答