gpt4 book ai didi

json - GRAILS:从(嵌套的)JSON 创建域类对象

转载 作者:行者123 更新时间:2023-12-01 15:05:05 24 4
gpt4 key购买 nike

是否有一种绝妙的方法可以从 JSON 递归创建 Grails 对象?

例子

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)

如果有一个通用的方法就好了。

谢谢

最佳答案

我以前没做过,但我想你可以使用反射。

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

编辑:省略了一个结束括号

关于json - GRAILS:从(嵌套的)JSON 创建域类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11559926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com