json - 复杂对象和集合的 Groovy/Grails JSON 转换

标签 json serialization grails groovy

我有以下表示类别树的映射:

class Category {

  String name
  static belongsTo = [parent: Category]
  static hasMany = [categories: Category]

}

我想做的是渲染所有类别树并从渲染中排除字段 parent

render category as JSON 

仅呈现层次结构的第一层,不呈现子类别的名称。 IE。有以下树:

根目录->cat2->cat4 类别 3

我有

{"class":"project.Category",
 "id":1,
 "categories":[{"class":"Category","id":2},
               {"class":"Category","id":3}],
 "name":"Root",
 "parent":null}

我不想要“class”和“parent”属性,想在这棵树中看到 cat4 数据。

是否有一些特殊的库或插件,或者是否可以配置标准的 JSON 转换器或域类?

最佳答案

您可以尝试通过 JSONBuilder 构建自定义 JSON:

render(builder:'json') {
  id(category.id)
name(category.name)
  categories {
    category.categories?.each {
      categories (
        id: it.id,
        name: it.name
      )
    }
  }
}

关于json - 复杂对象和集合的 Groovy/Grails JSON 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3203130/

相关文章:

java.lang.ClassNotFoundException : org. 代码豪斯.jackson.map.JsonSerializableWithType

java - 如何忽略 XStream 的类型?

spring - 在Grails中加载bean时发生ClassNotFound异常

android - 如何使用 Retrofit/Gson 反序列化 JSON 中相同类型但字段名称不同的对象列表?

json - 是否有任何方法可以根据 jmespath 中子对象中的键的条件来访问父键?

python - 如何使用Python将文本转换为Json格式

java - 通过 Tibco JMS 发送可序列化对象会引发反序列化失败错误

c# - 反序列化 JSON 字符串 - 列表/数组

grails - 如何在Grails 3.1.8的脚手架GSP中对hasMans进行排序

grails - 如何使用 spock 在 where block 上测试索引?