我有一个带有 mongodb 插件的 grails 应用程序。
我所有的域对象都是:
class Person {
ObjectId id
String name
}
和
class Like {
ObjectId id
Person from
Person to
Date createdAt
}
我的控制器应该根据一些Like
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?我用 JSONBuiled 找到了这个解决方案,其中包含转义字段 'class'、metaClass' 和 'dbo'。但我认为它可以用 Expando 类来完成,但我找不到正确的方法......
无论如何,谢谢,马克西姆