【发布时间】:2012-06-28 19:04:26
【问题描述】:
我有一个带有 mongodb 插件的 grails 应用程序。
我所有的域对象都是:
class Person {
ObjectId id
String name
}
和
class Like {
ObjectId id
Person from
Person to
Date createdAt
}
我的控制器应该根据一些Like by id 给出完整的数据:
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 带有转义字段'class'、metaClass' 和'dbo'。但我认为它可以用 Expando 类来完成,但我找不到正确的方法......
谢谢你, 马克西姆
【问题讨论】: