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


回答:


312

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も反復可能ではないのは本当に残念です。:-(
tu-Reinstate Monica-dor duh

ここでjsonとは何ですか?Jsonオブジェクト、Json配列、または他の何か?
Pravinsingh Waghela

2
@PravinsinghWaghelaそれは質問に指定されているJSONObjectだ
ニコラス・カラスコ

66

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

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

ここでjsonとは何ですか?Jsonオブジェクト、Json配列、または他の何か?
Pravinsingh Waghela

jsonはJsonObjectです
Roozbeh Zabihollahi

@PravinsinghWaghelaは、OPがjsonオブジェクトをループする方法を尋ねたことをかなり確信しています。
デニー

5

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

これがKotlinの実装です。文字列を取得する方法がを使用optString()していることがわかります。

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.