Android JSONObject-플랫 JSON 개체를 반복하여 각 키와 값을 가져 오는 방법


답변:


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도 반복 할 수 없다는 것은 정말 부끄러운 일입니다. :-(
tu-Reinstate Monica-dor duh

여기에 json은 무엇입니까? Json Object, Json Array 또는 다른 것?
Pravinsingh Waghela 2012

2
질문에 지정된대로 @PravinsinghWaghela 그것은 된 JSONObject있어
니콜라스 카라 스코

66

Franci의 대답의 짧은 버전 :

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

여기에 json은 무엇입니까? Json Object, Json Array 또는 다른 것?
Pravinsingh Waghela 2012

JSON은 된 JSONObject입니다
Roozbeh Zabihollahi

@PravinsinghWaghela OP가 json 객체를 반복하는 방법을 물었다 고 확신합니다.
Denny 2011

5

Iterator값을 얻기 위해 키를 반복하려면를 사용해야 합니다.

다음은 Kotlin 구현입니다. 내가 문자열을 얻는 방식 optString()이 String 또는 nullable 값을 예상하는을 사용하고 있음을 알게 될 것 입니다.

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.