2012-02-17 70 views
0

与JSONBuilder工作作为输入我的每个对象都有属性的所有对象的列表:在Groovy/Grails的

  • 儿童(object.children是所有儿童的名单)
  • 父(NULL,如果对象是顶层)

如何正确使用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":[] 
    } 
] 

这是构建JSON的ExtJS的组件,它会显示此树所需。谢谢你的帮助!

回答

0

这个属性添加到您的Config.groovy中文件:

grails.converters.json.default.deep=true 

Grails Doc 是过时的一点,但有关财产根据上市有“配置选项”

+0

太好了!谢谢!另一个小问题。是否有可能修改属性,例如我不需要class属性或者我想添加额外的属性 – muffin 2012-02-20 14:13:49

+0

@muffin,如果你在说话关于只减少/额外的属性,我认为你需要做更多的手动编码。看看[这个博客](http://manbuildswebsite.com/2010/02/08/rendering-json-in-的grails-部分-2-普通老式-Groovy的对象和域的对象/) – Davetron 2012-02-20 14:44:15

1

商店这种结构在对象说jsonContainer和尝试下面的代码段

render jsonContainer as grails.converters.deep.JSON 

希望这有助于。

+0

谢谢,但我不清楚如何实际存储这样的结构的对象。顺便说一句,深转换器已过时:( – muffin 2012-02-18 10:28:07