3

JSONから再帰的にGrails-Objectsを作成するグルーヴィーな方法はありますか?

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)

一般的なアプローチがあればいいのですが。

ありがとうございました

4

1 に答える 1

0

私はこれまでやったことがありませんが、リフレクションを使用できると思います。

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

編集:終わりの括弧を省略

于 2012-08-13T20:43:44.317 に答える