Android JSONObject-如何遍历一个平面JSON对象以获取每个键和值


Answers:


313

使用keys()迭代器迭代所有属性,并get()为每个属性调用。

Iterator<String> iter = json.keys();
while (iter.hasNext()) {
    String key = iter.next();
    try {
        Object value = json.get(key);
    } catch (JSONException e) {
        // Something went wrong!
    }
}

7
注意:不能为(String s:json.keys()){...}使用缩写形式。JSONArray和JSONObject均不可迭代,这真是遗憾。:-(
–恢复莫妮卡多尔duh 2015年

json是什么?Json Object,Json Array还是其他?
Pravinsingh Waghela '16

2
@PravinsinghWaghela这是一个JSONObject如问题规定
尼古拉斯卡拉斯科


5

您需要使用Iterator来遍历键以获取其值。

这是Kotlin的实现,您将意识到我得到字符串的方式是使用optString(),它期望使用String或可为空的值。

val keys = jsonObject.keys()
while (keys.hasNext()) {
    val key = keys.next()
    val value = targetJson.optString(key)        
}


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.