(我在UTC 2时区,我假设是2小时的差异)。
我正忙于编写一个JSON RESTful API,它是Grails应用程序的一部分(特别是本项目的2.0.3,但这个问题在其他版本中也会出现)。我使用Jackson对Json进行序列化和反序列化,JsonService的配置如下所示:http://pastebin.com/JacytMuF
因此,多个域对象的值在单个DTO中进行了整理和表示(在本例中,它是一个简单的映射),这些值只是传递给JsonService以转换为Json,然后返回给请求。所有字段都已正确序列化,但有两个(多个)日期除外,这两个日期的间隔为2小时。例如,我可以运行:
db_dev=# select next_billing_date from account where code = 'CATS001';
next_billing_date
---------------------
2013-06-20 00:00:00
通过这个小动作(在记忆中)验证这是正确的
def checkTimezone() {
Account acc = Account.findByCode("CATS001")
log.error(acc.nextBillingDate)
}
它返回
ERROR mash.TestController - 2013-06-20 00:00:00.0
不出所料。此外,我可以通过在RestAccount tController中执行以下操作来检查是否没有任何东西篡改内存值:
def show() {
...
def ans = [ code: ac.code, nextBillingDate: ac.nextBillingDate ]
log.error("CATTTTSSSSSSSSSSSSSS::::: ${ac.nextBillingDate}")
[ans: ans]
}
(返回)
ERROR mash.RestAccountController - CATTTTSSSSSSSSSSSSSS::::: 2013-06-20 00:00:00.0
然而,当我到达相关endpoint时,我会得到:
nextBillingDate": "2013-06-19T22:00:00.000+0000"
nextBillingDate属性是一个普通的JavaDate对象,底层数据库是psql:
next_billing_date | timestamp without time zone | not null | plain |
因此,我有点不明白为什么它会随机扣除2小时。我明白为什么2小时是神奇的数字(时区差异),但我无法解释为什么它会在某些对象上抵消Date(或者实际上只在Date对象的某些子集上)。
需要检查的事项如下:
选项:
如果JVM默认设置为UTC,那么您将看到2小时的偏移量。为了获取您所在区域的时间戳,即UTC 2:00
,您可以通过如下方式将默认时区设置为您所在区域的Bootstrap.groovy
时区。设置默认值(时区。getTimeZone(“GMT 2:00”))
注意:-请参考GMT与UTC以找出差异。
问题内容: 我有以下课程- 我正在使用objectMapper.valueToTree(sections)将其转换为JsonNode。但是,当我打印相同的内容时,我仅从Entity类中看到id和name字段,而从Images列表中看不到任何内容。我是否需要添加任何种类的特殊逻辑或注释以确保同时打印列表。 以下是主要课程- 问题答案: 您需要为Entity#images添加getter和setter
有没有办法让Jackson序列化某个流对象(并在之后关闭)?这样地: 使现代化 澄清:我想流式传输内容,而不仅仅是将其序列化到单个String对象。
我正在构建一个REST网络服务。某些类的属性类型为(JodaTime)。 将此对象发送给我的客户端(Javascript)时,我的对象 被转化为 问题是我把这个对象发回服务器时出错了,因为我无法实例化 我想有像-任何其他格式都可以。 环境 杰克逊-注释2.8.8 jackson-core 2.8.8 杰克逊-数据库2.8.8 jackson-datatype-joda 2.8.8 joda-tim
我对jackson进行了配置,以便在和时给出一个简单的字符串表示。这可以在序列化过程中找到,例如,当我在REST API上获得数据时。 但反过来就不行了。当我试图将数据发送到服务器,并且应该将JSON解析为java对象时,会引发此异常: 很抱歉没有提到我在单元测试中。 TestClass:
问题内容: 我有一个JSON字符串,将标记为而不是。因此,例如,如果我有一个没有子对象的对象,我将收到类似以下的字符串: 我想将其反序列化为Parent类,并将子级正确设置为一个空的子级列表。 对于上述JSON字符串,我想要一个对象,其设置为,而设置为。 我会知道如何在整个课堂上使用注释 然后 但是,我想解决一个从字符串正确实例化List的一般问题: 我能得到类似的东西吗? 问题答案: 几个选择;
我明白它无法从嵌套JSON反序列化字符串。我解决这个问题的一个方法是通过编写自定义映射器 但是只要pojo中有变化,这就需要修改映射器,添加/删除字段。Mixin工作时没有任何变化,我该如何更新我的Mixin来处理objectId呢?