如何按照字母顺序对groovy中的json数据进行排序?
问题描述:
我要排序的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的东西?
答
输出格式似乎也没有相似你的代码发布
此外,你的代码贴不能仅仅通过有人试图回答这个问题上运行。
因此,这将是一个受过教育的猜测...
尝试:
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]
你能真正给你如何建立你的列表的工作的例子吗?目前你的'我生成像这样的json'似乎与你的输出json –
道歉,实际上这是代码的一部分。实际的代码就像在for循环中运行一样,并将结果的一部分与随机变量组合在一起,并创建一个随机名称的json数据。 – irobo
这是什么版本的Groovy? '排序(布尔,闭包)'已存在多年,多年和几年... –