我有一个带有 mongodb 插件的 grails 应用程序。
我所有的域对象都是:
class Person {
ObjectId id
String name
}
和
class Like {
ObjectId id
Person from
Person to
Date createdAt
}
我的 Controller 应该根据 id 的一些 Like
提供完整的数据:
class MyController {
def like() {
def like = Like.findById(new ObjectId("someIdHere"));
render(like as grails.converters.JSON)
}
}
我希望收到一个完整的 JSON 对象,如下所示:
{
"class":"Like",
"id":{
"class":"org.bson.types.ObjectId",
"inc":1483542456,
"machine":805594765,
"new":false,
"time":1340363115000,
"timeSecond":1340363115
},
"createdAt":"2012-06-22T11:05:15Z",
"from":{
"class":"Person",
"id":{ ... },
"name":"Some name here"
},
"to":{
"class":"Person",
"id":{ ... },
"name":"Some name here"
}
}
但我收到了对象的一级属性:
{
"class":"Like",
"id":{
"class":"org.bson.types.ObjectId",
"inc":1483542456,
"machine":805594765,
"new":false,
"time":1340363115000,
"timeSecond":1340363115
},
"createdAt":"2012-06-22T11:05:15Z",
"from":{
"class":"Person",
"id":"4fd31d453004dc0f010aca51"
},
"to":{
"class":"Person",
"id":"4fd31d463004dc0f010aca89"
}
}
我的问题是:有什么方法可以构造完整的(带有引用对象的)mongo db (DBObject) 数据对象的 JSON?我发现这个 solution with JSONBuiled 带有转义字段“类”、“元类”和“dbo”。但我认为这可以通过 Expando 类来完成,但我找不到正确的方法...
谢谢, 马克西姆
最佳答案
改变
render(like as grails.converters.JSON)
到
render(like as grails.converters.deep.JSON)
关于json - 具有嵌套对象的对象的完整 JSON 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224678/