json - 具有嵌套对象的对象的完整 JSON 渲染

标签 json mongodb grails

我有一个带有 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/

相关文章:

mysql - 除非行数有限,否则为什么我无法从 JSON post 请求获得响应?

java - 将 JSON 响应映射到 POJO(使用不同的名称)

java - 如何最轻松地基于字符串填充对象?

linux - mongo 崩溃了,现在无法启动

mongodb - 使用 mGo 导入备份集合

ruby - Postgresql JSON 列作为 HashWithIndifferentAccess

sql 文本字段 vs 平面文件 vs nosql 文档存储

grails - Grails域对象成员如何具有基于计算值的默认名称?

rest - Swagger grails整合

hibernate - 如何在grails createCriteria()中编写条件