Grails JSON转换器和瞬态属性

dbr*_*rin 6 grails groovy

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

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

小智 7

对我有用的是这一行

def jsonobj=domobj.properties as JSON
Run Code Online (Sandbox Code Playgroud)


Igo*_*nov 5

Transient完全是为了这个:变量可以标记为瞬态,表示它们不是对象持久状态的一部分

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

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

  • +1正确回答奖金Q.但是我觉得有一个合理的用例来标记一个字段瞬态,但也让JSON转换器拿起它 - 配置标志将在这里创造奇迹:) (5认同)

hit*_*ty5 5

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

["prop1" : obj.prop1, "prop2" : obj.prop2, ...] as JSON
Run Code Online (Sandbox Code Playgroud)