【发布时间】:2012-11-14 11:09:24
【问题描述】:
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
如何在事先不知道 key 和 value 的情况下获取每个 item 的 key 和 value?
【问题讨论】:
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
如何在事先不知道 key 和 value 的情况下获取每个 item 的 key 和 value?
【问题讨论】:
【讨论】:
看看 JSONObject 参考:
http://www.json.org/javadoc/org/json/JSONObject.html
在不实际使用对象的情况下,看起来使用返回 Iterator 的 getNames() 或 keys() 是可行的方法。
【讨论】:
JSONObject 没有getNames()。 developer.android.com/reference/org/json/JSONObject.html
您应该使用keys() 或names() 方法。 keys() 会给你一个包含对象中所有字符串属性名称的迭代器,而names() 会给你一个包含所有关键字符串名称的数组。
您可以在此处获取 JSONObject 文档
http://developer.android.com/reference/org/json/JSONObject.html
【讨论】:
弗朗西回答的简短版本:
for(Iterator<String> iter = json.keys();iter.hasNext();) {
String key = iter.next();
...
}
【讨论】:
您需要使用Iterator 循环访问键以获取它们的值。
这是一个 Kotlin 实现,你会意识到我获取字符串的方式是使用 optString(),它需要一个字符串或一个可为空的值。
val keys = jsonObject.keys()
while (keys.hasNext()) {
val key = keys.next()
val value = targetJson.optString(key)
}
【讨论】: