Grails JSON转换器和瞬态属性

时间:2011-07-19 05:45:57

标签: grails groovy

使用Grail 1.3.7我发现JSON转换器忽略了Domain对象的瞬态属性。 问题:有没有一种优雅的方法来解决这个障碍。

奖金问题:排除计算字段(瞬态道具)被发送到响应背后的原因是什么?

5 个答案:

答案 0 :(得分:6)

对我有用的是这一行

def jsonobj=domobj.properties as JSON

答案 1 :(得分:5)

瞬态完全是为了:Variables may be marked transient to indicate that they are not part of the persistent state of an object

JSON是对象的序列化(=持久)状态

因此,如果您需要对其进行序列化 - 您必须创建一个新类,仅用于json序列化,它将包含序列化所需的所有字段。

答案 2 :(得分:4)

一种方法是手动创建你的json响应,例如

["prop1" : obj.prop1, "prop2" : obj.prop2, ...] as JSON

答案 3 :(得分:0)

如果您需要对JSON中包含/排除的字段进行细粒度控制,我可以使用JSONBuilder比转换器更好的选择。这是an example如何做到这一点。

答案 4 :(得分:0)

您可以使用“marshallers”插件并将瞬态属性定义为虚拟,如下所示:

{{1}}