我具有類似於下面的控制器(RestfulController
)代碼:如何在Grails中將純對象呈現爲JSON,XML?
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
表示該對象不能轉換爲JSON。
我搜索出來的一些文章暗示我將模型對象放在地圖中,然後讓地圖得到渲染。例如:
render ['model': model] as JSON
但是,這不是我想要的響應消息。另外,XML消息看起來非常不同。
是不是簡單地渲染模型爲JSON?目前的反應如何,你想怎麼樣? – matcauthon 2014-09-02 09:51:05
由於我在內部認爲這是'響應'基本上做的事情,因此呈現爲JSON並不行。模型只是一個普通的Groovy類。你可以認爲上面的'name'和'description'是它的所有屬性。我希望響應看起來像是如何在沒有外部容器對象包裝它的情況下渲染模型對象。 – 2014-09-02 10:37:19
render(contentType:「application/json」){ book(title:b.title,author:b.author) from here:http://grails.org/doc/2.3.4/ref/Controllers/ render.html也許這會幫助你? – MNie 2014-09-02 11:24:56