2012-07-19 181 views
3

有沒有一種常規的方式來創建Grails對象的JSON遞歸?GRAILS:創建域類對象(嵌套)JSON

class Person {String name, String surname ....} 


class Text { String content, Person owner } 

什麼是創建從以下JSON對象的最簡單的方法:

{ 
    "class":"Text", 
    "content":"test test test", 
    "owner":{ 
    "class":"Person", 
    "id":1 
    } 
} 

甚至出:

{ 
    "class":"Text", 
    "content":"test test test", 
    "owner":{ 
    "class":"Person", 
    "name":"foo", 
    "surname":"bar" 
    } 
} 

一個簡單的創建(沒有嵌套類)的作品像魅力:

Person p = new Person(JSON.parse(responseBody)) 

另一個問題是:如果嵌套創建不可能,我該如何修改反序列化過程?

目前我避免通過手動分配問題:

def jsonObj = new JsonSlurper().parseText(element.toString()) 
Person.get(jsonObj.owner.id) 

如果有一個通用的方法這將是很好。

謝謝

回答

0

我還沒有做過,但我想你可以使用反射。

def myClass = Class.forName("${owner.class}") 
def classLoader = this.getClass().getClassLoader() 
def myDomain = (myClass, true, classLoader).newInstance()) 

編輯:冷落的結局括號