2015-09-25 177 views
0

我要排序的JSON数据是这样的如何按照字母顺序对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, [email protected]] 
Possible solutions: sort(), sort(java.util.Comparator), sort(groovy.lang.Closure), wait(), size(), size() 

我想这些数据进行排序字母顺序升序或降序

上面一个是在常规控制台,但并不在我的计划工作,我是否需要添加其他类似lib的东西?

+1

你能真正给你如何建立你的列表的工作的例子吗?目前你的'我生成像这样的json'似乎与你的输出json –

+0

道歉,实际上这是代码的一部分。实际的代码就像在for循环中运行一样,并将结果的一部分与随机变量组合在一起,并创建一个随机名称的json数据。 – irobo

+0

这是什么版本的Groovy? '排序(布尔,闭包)'已存在多年,多年和几年... –

回答

1

输出格式似乎也没有相似你的代码发布

此外,你的代码贴不能仅仅通过有人试图回答这个问题上运行。

因此,这将是一个受过教育的猜测...

尝试:

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

如果您使用的常规方法早在一天的某些未知的原因,那么就放下false,但要小心,因为这会产生变异您json列表...

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

谢谢你,另外一个工作 – irobo

+0

一件事我怎么可以赞赏像alphaphed desc或asc – irobo

相关问题