json - Grails 3 JSON日期序列化

标签 json date grails serialization

好的,我知道这应该很容易。使用JsonViews的My Grails 3.2.5 REST服务器需要将日期返回给客户端,而不受客户端时区的影响。为了进行测试,我的客户端和服务器都在东部时间,因此无论如何都应该没有差异。但是我看到的是传出的JSON日期字符串已调整为GMT,因此它们增加了5个小时的时间。

我可以通过在Bootstrap中注册Date marshaller来克服对普通JSON的这种调整:

JSON.registerObjectMarshaller(Date) {
    String fmt = "yyyy-MM-dd'T'HH:mm:ss'Z'"
    return it.format(fmt)
}

但是,这对通过JsonView发送的域类日期没有影响。我尝试实现一些更改Jackson Date序列化程序的全局方法,但到目前为止无济于事。我该怎么做呢?文档和示例相互矛盾和混乱。

我的构建配置:
apply plugin:"org.grails.plugins.views-json" 
compile "org.grails.plugins:views-json:1.1.2"

谢谢

最佳答案

您的代码示例使用的是JSON转换器API,该API与JSON View 无关。

为了实现您想要的,您要么需要自己管理 View :

model {
   Book book
}

json {
    published book.published.format(...)  
}

或当前使用grails-views(RC1)的当前候选版本并实现一个转换器,在此进行描述:http://views.grails.org/1.2.x/#_custom_converters

编辑:要在 View 1.2.x中设置默认时区,可以使用几个配置选项:
grails.views.json.generator.timeZone: "EST"

grails.views.json.generator.dateFormat: "yyyy-MM-dd'T'HH:mm:ss'Z'"

关于json - Grails 3 JSON日期序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42702254/

相关文章:

grails - grails控制台执行错误

grails - 在Grails 3应用程序中使用Spring Webflow

json - 如何使用PIG加载自定义记录(普通数据和Json数据的混合)

ruby-on-rails - 如何将带有 key 的 json 文件上传到 Heroku

java - 如何正确计算两个日期之间的实际月数?

php - 日期/时间条件

jquery - 使用 jQuery 匿名上传图像到 Imgur API v3?

java - 将嵌套的 Json 发布到 spring Controller

javascript - 如何使用 getDate() + 5 配置 Highcharts tooltip.headerFormat

jquery - grails gorm:格式化的数字和日期