使用Grail 1.3.7我发现JSON转换器忽略了Domain对象的瞬态属性。 问题:有没有一种优雅的方法来解决这个障碍。
奖金问题:排除计算字段(瞬态道具)被发送到响应背后的原因是什么?
答案 0 :(得分:6)
对我有用的是这一行
def jsonobj=domobj.properties as JSON
答案 1 :(得分:5)
JSON是对象的序列化(=持久)状态
因此,如果您需要对其进行序列化 - 您必须创建一个新类,仅用于json序列化,它将包含序列化所需的所有字段。
答案 2 :(得分:4)
一种方法是手动创建你的json响应,例如
["prop1" : obj.prop1, "prop2" : obj.prop2, ...] as JSON
答案 3 :(得分:0)
如果您需要对JSON中包含/排除的字段进行细粒度控制,我可以使用JSONBuilder比转换器更好的选择。这是an example如何做到这一点。
答案 4 :(得分:0)
您可以使用“marshallers”插件并将瞬态属性定义为虚拟,如下所示:
{{1}}