2014-10-11 56 views
0

我有一個奇怪的json字符串,我從其他api接收,現在我試圖從json字符串中提取信息,看起來像這樣。閱讀android中的複雜json字符串

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 
}] 

}};

我想讀此JSON這樣,但不知道我應該怎麼遍歷下學生的價值和employye

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數組在android]可能的重複(http://stackoverflow.com/questions/17673057/how-to-parse-this-nested-json-array-in-android) – ben75 2014-10-11 20:12:11

回答

0

該用戶擁有相同的查詢和你。只要通過這個答案。

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()); 
} 

,這將給你所有的鑰匙在你的學生對象

鍵:0" 關鍵:1 「 key:2」 key:4「 key:5」 key:6「 key:7」 key:employye「

等等通過你的json解析。

+0

否但問題是我應該如何通過1,2,3這是字符串不是int,所以我不能這樣做JSONObject elem = list.getJSONObject(i);相反,我需要做的像這樣JSONObject elem = list.getJSONObject(「7」); – user2323 2014-10-11 15:56:04

+0

使用String.valueof()方法傳遞7. – Shvet 2014-10-11 16:09:38

+0

您應該使用「標記爲重複」選項,而不是將鏈接發佈到另一個問題作爲答案。 – brandonscript 2014-10-11 16:17:51