2013-02-19 20 views
2

我有JSON,看起來與此類似:如何處理動態JSON元素在Groovy

{ 「測試」:{ 「紅」: 「上」, 「綠色」: 「關」,「黃「:」 上 「},」 測試1 「:{」 紅 「:」 關」, 「綠色」: 「上」, 「黃」: 「關」}, 「測試2」:{ 「紅」: 「上」, 「綠色」:「關」,「黃」:「關」}}

我遍歷這個與下面的代碼:

JSONObject t = JSON.parse(params.myObject) 

    t.each { id, data -> 
     println id 
     println data.red 
     println data.green 
     println data.yellow 
    } 

不過,有時候我可以有不同的動態VALU es在JSON對象中。例如(添加新顏色):

{「test」:{「red」:「on」,「green」:「off」,「yellow」:「on」,「pink」:「on」} 「測試1」:{ 「紅」: 「關」, 「綠色」: 「上」, 「黃」: 「關」, 「粉紅色」: 「上」}, 「測試2」:{ 「紅」:「上」, 「綠色」: 「關」, 「黃」: 「關」, 「粉紅色」: 「上」}}

問題

有沒有一種方法來在迭代沒有硬編碼的所有JSON我的代碼中的顏色?

回答

2
JSONObject t = JSON.parse(params.myObject) 
t.each { id, data -> 
    println id 
    data.each { prop, value -> 
     println prop + " = " + value 
    } 
} 
0

我想通了。

我可以只是簡單地遍歷值以類似的方式:

t.each { id, data -> 
     println id 
     data.each {id1, d -> 
      println id1 
      println d 
     } 
    }