Rom*_*man 4 grails groovy json
我希望每个JSON响应都可以包含一个字段success.在那里添加此字段的最佳方法是什么?
我使用这样的代码来生成JSON响应:
try {
def entity = myService.saveEntity(arg1,arg2)
render entity as JSON //I want to add artificial field 'success = "yes"' here
} catch (ValidationException e) {
render parseErrors(e.errors) as JSON //field 'success = "no"' here
}
Run Code Online (Sandbox Code Playgroud)
小智 8
本周我只是在努力解决这个问题.我想将一个域类作为JSON发回,但同时添加一个可能包含其他信息的'errorMessage'属性.
事实证明,当在grails中使用JSON时,它会发送回转换器对象,但可以使用JSON.parse()将该转换器实例转换为jsonObject ,我们可以轻松地向其中添加新值.
def jsonObject = JSON.parse((entity AS JSON).toString())
jsonObject.put("success", "yes")
render jsonObject as JSON
Run Code Online (Sandbox Code Playgroud)
我认为有几种不同的方法,但这对我来说最简单,因为我已经为我的大多数域类都有自定义转换器,我不想在我的域对象中添加任何其他瞬态属性.
您是否可以返回包含success字段和包含在单独变量中的对象的地图:
try {
def entity = myService.saveEntity(arg1,arg2)
render [ success:'yes', val:entity ] as JSON
} catch (ValidationException e) {
render [ success:'no', val:parseErrors(e.errors) ] as JSON
}
Run Code Online (Sandbox Code Playgroud)
没测试过介意...
| 归档时间: |
|
| 查看次数: |
3926 次 |
| 最近记录: |