2015-10-17 119 views
0

我在這個格式的JSON響應:遍歷JSON鍵獲取值

{"success":false,"errors":{"one":["First", "Second",...],"two":["First", "Second",...],...}} 

errors對象可以有多個鍵,其中每個鍵可以具有一個或多個值。

我怎樣才能循環訪問鍵(在Java中)並獲得它們的值?

我當前的代碼:

JSONObject obj = new JSONObject(json); 

String success = obj.getString("success"); // get success 
JSONObject errors = obj.getJSONObject("errors"); // get errors 
+3

如果您不介意請使用JSON解析器,如[GSON](https://github.com/google/gson)。進一步看到這[SO帖子](http://stackoverflow.com/questions/22326169/which-is-the-best-way-to-parse-json-data-in-android) –

回答

0

試試這個

Iterator<String> iter = errors.keys(); 
        while (iter.hasNext()) { 
         String key = iter.next(); 
         Log.e("key",key); 
         JSONObject object = errors.getJSONObject(key); 
         //this object contains the values within a single key. 
        } 
0

使用keys()迭代器在遍歷所有屬性。

for(Iterator<String> iter = errors.keys();iter.hasNext();) { 
    String key = iter.next(); 
     ... 
} 
+0

我這樣做得到的價值:'Object value = errors.get(key); System.out.println(value);',但我用括號和引號得到輸出:'[「First」]'。爲什麼? – user5456172

+0

嘗試打印鍵如:System.out.println(key); –