如何在JSON编组上添加“数据”和“分页”部分

时间:2014-12-17 13:28:30

标签: json rest grails marshalling

我知道我可以自定义向域实体注册JSON marshallers的JSON响应,即使我可以创建具有不同响应名称的配置文件。

这样就完成了一个后来将被编组的数组,如:

    JSON.registerObjectMarshaller(myDomain) {
        def returnArray = [:]
        returnArray['id'] = it.id
        returnArray['name'] = it.name
        returnArray['price'] = it.price
        return returnArray
    }

我想要的是改变它被编组的方式,有两个部分,如

{
  "paging": {
    "total": 100
  },
  "data": [
    {
      "id": 1,
      "description": "description 1",
      }
    },
    ...
  ]
}

我假设我必须实现自定义JSON Marshaller,但我不知道如何将它用于特定响应而不是广泛应用。

编辑:我认为除了编组人员我还需要一个自定义的RENDERER。这是我不知道如何用于特定回应的那个。

1 个答案:

答案 0 :(得分:1)

如何简单:

def json = new JSON([ paging: [ total: myArray.totalCount ], data: myArray ])

您的域对象将使用您设置的编组器进行转换,而您的分页数据将简单地转换为JSON。