[英]How do I render plain object as JSON, XML in Grails?
我有一个类似于以下内容的控制器( RestfulController
)代码:
def doSomethingAwesome() {
Domain domainObject = prepareDomainObject()
//do something on the domain object
Model model = new Model(name: domainObject.name, description: domainObject.description)
respond model
}
可以看出,我试图用包装在Model
对象中的数据进行响应。 但是, Model
类不是域类;它不是域类。 这只是一个普通的Groovy类。 当我尝试GroovyCastException
测试此代码时,我会通过它,但是当我与所有其他测试一起对其进行测试时,我得到了GroovyCastException
该对象无法转换为JSON。
我搜索中出现的一些文章建议我将模型对象放在地图中,然后渲染该地图。 就像是:
render ['model': model] as JSON
但是,这不是我想要的响应消息。 此外,XML消息看起来会非常不同。
在Grails的2.4.3演示项目https://github.com/jeffbrown/pogorespond演示传递POGO(不是域类)的respond
方法。 https://github.com/jeffbrown/pogorespond/blob/1646c64fe2b37856fc87b64ae1cf5a6c4fd44cb1/grails-app/controllers/demo/DemoController.groovy包含以下内容:
package demo
class DemoController {
static responseFormats = ['json']
def index() {
def m = new Model(name: 'Some Name', description: 'Some Description')
respond m
}
}
class Model {
String name
String description
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.