如何按字母顺序对groovy中的json数据进行排序?

时间:2015-09-25 10:19:10

标签: json sorting groovy

我想对json数据进行排序,就像这样

def json = []
for ( int i=10;i>1;i--){

    if (i==10 || i==9 ){
         json << [ name:"xyz",
            id:i
        ]
    }else 
    if (i==8 || i==7 ){
          json << [ name:"abc",
             id:i
            ]
    }

}
// def jsondata = [success:true, rows:json]

def jsondata = [success:true, rows:json.sort(false) { it.name }]

print jsondata​
groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.sort() is applicable for argument types: (java.lang.Boolean, com.cs.AdminController$_closure15_closure83) values: [false, com.cs.controllers.AdminController$_closure15_closure83@3e020351]
Possible solutions: sort(), sort(java.util.Comparator), sort(groovy.lang.Closure), wait(), size(), size()

我希望数据按字母顺序升序或降序排序

上面的一个是在一个groovy控制台工作但不在我的程序中,我是否需要添加像lib这样的东西?

1 个答案:

答案 0 :(得分:1)

您的输出格式似乎与您发布的代码没有相似性

此外,您发布的代码不能仅由试图回答此问题的人运行。

所以这将是一个有根据的猜测...

尝试:

def jsondata = [success:true, rows:json.sort(false) { it.name }, total:totalCount]

如果您因某种未知原因从当天回来使用groovy,那么只需删除false,但请注意,这会改变您的json列表...

def jsondata = [success:true, rows:json.sort { it.name }, total:totalCount]