我的 Grails 控制器中有一个方法应该返回 JSON,JSON 的属性是 Date 对象,但是当我这样做时:
render myObject as JSON
输出如下:
{
"dateProperty": "2010-12-31T23:00:00Z",
"otherProperty" : "aValue..."
}
有没有办法更改转换器使用的默认日期格式?
我尝试过设置属性grails.converters.json.date
并且grails.date.formats
in the 配置.groovy,但这不起作用。
我做错了什么还是有其他方法可以做到这一点?
Thanks
我通常使用自定义 Marshaller。假设您有以下域名
class Address {
String addressOne
String city
//bla bla
Date dateCreated
}
像这样在 src/groovy 下创建一个类
class AddressMarshaller {
void register() {
JSON.registerObjectMarshaller(Address) { Address address ->
return [
id: address.id,
addressOne: address.addressOne,
city: address.city,
dateCreated: address.dateCreated.format('yyyy-MM-dd')
]
}
}
然后在 Bootstrap 文件中执行以下操作:
[ new AddressMarshaller() ].each { it.register() }
我之所以将其作为数组来处理,是因为我有多个编组器。
现在,无论你何时做address as JSON
,您将获得您所描述的 JSON,并且您的日期格式是正确的。我知道这对于格式化 JSON 日期来说似乎有些过分了,但这还有很多其他好处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)