安卓的JSONObject - 怎样才能通过平JSON对象循环得到每个键和值

问题描述 投票:95回答:5
{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

我怎样才能在不知道键也不值事先每个项目的键和值?

java android json
5个回答
297
投票

使用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!
    }
}

65
投票

短版弗郎的回答:

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

3
投票

您shold使用keys()names()方法。 keys()会给你一个包含所有在该对象的字符串属性名称的迭代器,而names()会给你所有的密钥字符串名称的数组。

你可以在这里得到的JSONObject文档

http://developer.android.com/reference/org/json/JSONObject.html


1
投票

你需要通过按键来使用Iterator循环得到他们的价值观。

这里有一个科特林实现,你会意识到,这样我得到的字符串使用optString(),这是期待一个字符串或一个空值。

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

-1
投票

看看的的JSONObject参考:

http://www.json.org/javadoc/org/json/JSONObject.html

实际上并没有使用对象,它看起来像使用任何getNames()或键()返回一个Iterator是要走的路。

© www.soinside.com 2019 - 2024. All rights reserved.