如何在Grails中为JSON转换器设置日期格式
我的Grails控制器中有一个方法,它应该返回JSON,JSON的属性是日期对象,但当我这样做时:如何在Grails中为JSON转换器设置日期格式,json,date,grails,converter,Json,Date,Grails,Converter,我的Grails控制器中有一个方法,它应该返回JSON,JSON的属性是日期对象,但当我这样做时: render myObject as JSON 输出如下所示: { "dateProperty": "2010-12-31T23:00:00Z", "otherProperty" : "aValue..." } 是否有方法更改转换器中使用的默认日期格式 我尝试在Config.groovy中设置属性grails.converters.json.date和grails.date.f
render myObject as JSON
输出如下所示:
{
"dateProperty": "2010-12-31T23:00:00Z",
"otherProperty" : "aValue..."
}
是否有方法更改转换器中使用的默认日期格式
我尝试在Config.groovy中设置属性grails.converters.json.date
和grails.date.formats
,但这不起作用。我做错了什么,还是有别的办法
谢谢我通常使用定制封送员。假设您拥有以下域
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')
]
}
}
然后在引导文件中执行以下操作:
[ new AddressMarshaller() ].each { it.register() }
我之所以这样做是因为我有多个封送器
现在,无论何时,只要您将地址设置为JSON,您就会得到您描述的JSON,并且您的日期格式是正确的。我知道这对于在JSON中格式化日期来说似乎有些过分,但它还有很多其他好处。如果您想要所有日期类型的默认JSON封送器,您也可以使用非常简单的东西,如中所示@Gregg的答案对于单个域类来说要灵活得多。我可以为我的对象创建封送拆收器……在这种情况下,这并不是一种过分的做法,因为这样我可以隐藏它在创建的JSON中自动注入的类属性。感谢您仅为Address的一个属性创建封送拆收器?剩下的就让它去违约?