web-dev-qa-db-ja.com

Android JSONObject-フラットなJSONオブジェクトをループして各キーと値を取得する方法

{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

事前にキーも値も知らずに各アイテムのキーと値を取得するにはどうすればよいですか?

97
user1763763

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!
    }
}
296
Franci Penov

フランシの答えの短いバージョン:

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

keys()またはnames()メソッドを使用してください。 keys()はオブジェクト内のすべての文字列プロパティ名を含むイテレータを提供し、names()はすべてのキー文字列名の配列を提供します。

こちらからJSONObjectのドキュメントを入手できます

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

3
Mike Brant

キーをループして値を取得するには、Iteratorを使用する必要があります。

ここにKotlinの実装があります。文字列を取得する方法は、optString()を使用していることに気付くでしょう。

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