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

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

키나 값을 미리 몰라도 각 항목의 키와 값을 어떻게 얻을 수 있습니까?



답변

사용 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!
    }
}


답변

Franci의 대답의 짧은 버전 :

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


답변

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

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

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


답변

keys()또는 names()방법을 사용합니다 . keys()객체의 모든 String 속성 이름을 포함하는 반복자를 제공하고 names()모든 키 String 이름의 배열을 제공합니다.

여기에서 JSONObject 문서를 얻을 수 있습니다.

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


답변

JSONObject 참조를 살펴보십시오.

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

실제로 객체를 사용하지 않으면 Iterator를 반환하는 getNames () 또는 keys ()를 사용하는 것처럼 보입니다.


답변