2015-09-25 142 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

相關問題