遍历JSON键获取值
问题描述:
我在这个格式的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
答
试试这个
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.
}
答
使用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); –
如果您不介意请使用JSON解析器,如[GSON](https://github.com/google/gson)。进一步看到这[SO帖子](http://stackoverflow.com/questions/22326169/which-is-the-best-way-to-parse-json-data-in-android) –