2015-10-17 114 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); –