Json Grails根据属性位置以不同方式呈现同一类
在我的grails应用程序中,我希望将对象的层次结构呈现为JSON响应。有几个java.util.Date类型的属性,在不同级别上指定,具有不同的名称。根据位置和名称,我希望以不同的方式呈现日期,如下所示:Json Grails根据属性位置以不同方式呈现同一类,json,grails,Json,Grails,在我的grails应用程序中,我希望将对象的层次结构呈现为JSON响应。有几个java.util.Date类型的属性,在不同级别上指定,具有不同的名称。根据位置和名称,我希望以不同的方式呈现日期,如下所示: { ... "touristBirthday": "1980-10-11", "flight": { ... "flightTime": "2013-10-11 10:00", ... } ... } 请注意,tour
{
...
"touristBirthday": "1980-10-11",
"flight": {
...
"flightTime": "2013-10-11 10:00",
...
}
...
}
请注意,touristbirth
和flightTime
都有java.util.Date类型,但呈现方式应该有所不同。所以grails对象封送器对我来说并不是很有用。
在应用程序的某些部分中,我已经通过将模型bean转换为映射,然后覆盖这些映射中的条目,手动完成了转换,但在每种情况下这样做都会产生大量无法维护的混乱,尤其是当层次结构有许多级别时
这个问题有没有插件或简单的解决方案?因此,我可以简单地指定属性的名称/位置以及呈现它的方式,覆盖默认的对象封送器
另外,更改模型(属性类型)对我来说不是一个真正的选项,因为模型来自另一个应用程序。但是为什么grails object marshaller对您没有用处?因为如果我使用它
JSON.RegisterObject marshaller(Date)
那么我的日期在任何地方都会以相同的方式呈现,我想根据属性名/位置对它们进行不同的渲染为什么不将其注册为基类?航班等?只需为field@IgorArtamonov这是一个解决方案,但是模型是巨大的,所以我不想在对象marshaller定义中重复它啊,好吧,我现在明白了