当我想测试自定义"渲染为JSON"方法,我使用了以下代码
class BootStrap{
def init = { servletContext ->
....
println "change the json before format"
JSON.registerObjectMarshaller(Date) {
println "JSON DATE MARSHAL"
return it.format("yyyy-MM-dd HH:mm:ss")
}
println "change the json after format"
}
}
但是在控制台中打印的内容是这样的:
奇怪的是," JSON DATE MARSHAL"没有被打印出来。 但是当我把代码放在控制器中时,它就有用了。|编译1个源文件
|运行Grails应用程序
Active MQ启动。 ConsumerURL是故障转移:ssl:// xxx。
格式化之前更改json
更改格式后的json
|服务器正在运行。浏览到http://xxx
我不知道发生了什么。
任何建议都会受到欢迎。
更新: 就像railsdog所说,似乎init中的关闭并没有起作用。
我认为JSON中的日期格式是这样的:2016-12-15 16:44:21
但我得到的是2016-12-15T08:44:21Z。
当我将marshaller放在控制器中时,它工作正常,JSON中的日期格式符合预期:
2016-12-15 16:44:21
我也得到了控制台输出:" JSON DATE MARSHAL"。
答案 0 :(得分:0)
我认为注册对象marshaller实际上并不执行/调用闭包,因此不会发出调试。
答案 1 :(得分:0)
而不是在grails应用程序配置中注册marshaller检查属性grails.databinding.dateformats
。您可以添加更多不同的日期格式,应由您的应用处理。