2014-10-11 4 views
0

나는 이것처럼 보이는 json string에서 정보를 추출하려고하는 나머지 api에서받는 이상한 json 문자열을 가지고있다.android에서 complex json string을 읽는 것

var json={"student":{ 
"0":[{ 
    "name":"manet", 
    "marks":114 
}], 
"1":null, 
"2":null, 
"4":null, 
"5":null, 
"6":null, 
"7":[{ 
    "name":"Om", 
    "marks":75 
}], "employye": { 
"0":[{ 
    "name":"nn", 
    "value":23 
}], 
"1":[{"name": "tt", 
     "value": 67}] 
"2":null, 
"3":null, 
"4":null, 
"5":null, 
"6":null, 
"7":[{ 
    "name":"Om", 
    "value":75 
}] 

}};

은 내가 학생에서 값을 반복하는 방법을 알고이 사용자는 당신과 같은 쿼리를 가지고

try { 
     JSONObject reader = new JSONObject(data); 
      Log.d(TAG, ""+reader.length()); 
     JSONObject student = reader.getJSONObject("student"); 
       Log.d(TAG, "Student Array"+student.getJSONArray("0")); // here is the issue 

    } catch (JSONException j) { 
     j.printStackTrace(); 

    } 

감사

+0

가능한 중복 [안드로이드에서이 중첩 JSON 배열을 구문 분석하는 방법] (http://stackoverflow.com/questions/17673057/how-to-parse-this-nested-json-array-in-android) – ben75

답변

0

을 employye이 같은이 JSON을 읽으려고하지만 해달라고하고있다. 이 대답을 살펴보십시오. 0 " 키 : 1 학생이

키를 개체에서 학생 개체 아래의 키를 얻을 수

https://stackoverflow.com/a/17673362/4132625

사용이 코드는

JSONObject object = new JSONObject(json); 
JSONObject reader = object.getJSONObject("student"); 
Iterator<String> iterator = reader.keys(); 
while(iterator.hasNext()){ 
Log.d("JSON" ,"key :"+iterator.next()); 
} 

는 당신에게 모든 열쇠를 줄 것이다 " 키 : 2" 키 : 4 " 키 : 5" 키 : 6 " 키 : 7" 키 : employye "

등은 json을 통해 구문 분석합니다.

+0

아니요 하지만 문제는 1,2,3을 통해 어떻게해야하나요? String이 아닌 int입니다. 그렇게 할 수 없습니다. JSONObject elem = list.getJSONObject (i); 대신 나는 이런 식으로 soemthing을 할 필요가있다. JSONObject elem = list.getJSONObject ("7"); – user2323

+0

String.valueof() 메서드를 사용하여 7을 전달하십시오. – Shvet

+0

다른 질문에 대한 링크를 답변으로 게시하는 대신 "중복 플래그"옵션을 사용해야합니다. – brandonscript