【发布时间】:2014-10-23 16:44:56
【问题描述】:
我正在尝试将域(例如 OrgUnit)实例作为 JSON 编组和解组到这样的数据库字段:
class OrgUnit{
String name
OrgUnit parent
static hasMany = [children:orgUnit]
}
class History{
String data
}
class OrgUnitService{
History marshal(OrgUnit orgUnit){
return new History([
data : (orgUnit.properties as JSON).toString()
]).save()
}
OrgUnit unmarshal(History history){
return OrgUnit.newInstance( JSON.parse(history.data))
}
}
它适用于名称等简单字段,但子字段等字段在未编组对象中为空。
history.data 字段包含这样的子信息:
{"name":"b","children":[{"class":"demo.OrgUnit","id":3,"children":null,"name":"c"}]}
我正在使用 Grails 2.2.4。 有什么建议吗!?
更新 我在 Grails 2.4.3 上对其进行了测试。它按预期工作。 history.data 字段的内容在两个 Grails 版本中是相同的。问题在于解组部分。
【问题讨论】:
-
也许试试 json slurper? beta.groovy-lang.org/docs/groovy-2.3.0/html/gapi/groovy/json/… 对我来说效果很好。
标签: json grails grails-orm marshalling unmarshalling