【问题标题】:Working with JSONBuilder in Groovy/Grails在 Groovy/Grails 中使用 JSONBuilder
【发布时间】:2012-02-17 22:58:54
【问题描述】:

作为输入,我列出了每个对象具有属性的所有对象:

  • 姓名
  • children(object.children 是所有孩子的列表)
  • 父级(如果对象是顶级则为空)

如何正确使用 Groovy JSONBuilder 来渲染这些数据(树的深度是无限的):

-Object 1
--Object 1.1
---Object 1.1.1
--Object 1.2
-Object 2

JSON 格式应该是这样的:

[
    {
        "name":"Object1",
        "children":[
            {
                "name":"Object1.1",
                "children":[
                    {
                        "name":"Object 1.1.1",
                        "children":[]
                    }
                ]
            },
            {
                "name":"Object1.2",
                "children":[]
            }
        ]
    },
    {
        "name":"Object2","children":[]
    }
]

这是为将显示此树的 extJS 组件构建 JSON 所必需的。感谢您的帮助!

【问题讨论】:

    标签: json grails groovy tree


    【解决方案1】:

    将此结构存储在一个对象中,例如 jsonContainer 并尝试以下代码

    render jsonContainer as grails.converters.deep.JSON
    

    希望这会有所帮助。

    【讨论】:

    • 谢谢,但我不清楚如何将这种结构实际存储在对象中。顺便说一句,深度转换器已被弃用:(
    【解决方案2】:

    将此属性添加到您的 Config.groovy 文件中:

    grails.converters.json.default.deep=true
    

    Grails Doc 有点过时,但相关属性列在“配置选项”下

    【讨论】:

    • 太棒了!谢谢!另一个小问题。是否可以修改属性。例如,我不需要类属性或者我想添加额外的属性。
    • @muffin,如果您只是在谈论 渲染 更少/额外的属性,我认为您需要做更多的手动编码。看看this blog
    猜你喜欢
    • 1970-01-01
    • 2016-07-11
    • 2014-11-03
    • 2011-07-29
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多