2015-06-05 213 views
-2

我的JSON字符串在這裏嵌套對象中讀取的JSON值

{ 
"user": {"id": "S5675","name": "soman"}, 
"main": {"class1": { "modules": ["1","2"], 
"subjects": { "english": {"type": "english","module_id": "1"}, 
"hindi": {"type": "hindi", "module_id": "2",}}}, 
    "class2": {"modules": ["2","3"], 
"subjects": {"english": {"type": "english","module_id": "2"}, 
    "hindi": {"type": "urdu", "module_id": "3",}}}}} 

我想提取的Class1,Class2中和其相應的科目。這裏的課程1 - 英語和印地語。和第二類 - 英語和烏爾都語。我已經嘗試過如下

JSONObject subObj = json.getJSONObject("main"); //get class1 and class2  
    Iterator<String> keys=subObj.keys(); 
    while(keys.hasNext()){ 
    String key=keys.next(); 
    Log.i("key","" + key); 
    } 

我得到了class1和class2。但是如何從上面的json中提取相應的主題。請建議

+1

看到這個鏈接http://stackoverflow.com/questions/17673057/how-to-parse-this-nested-json-array-in-android –

+0

你的JSON有錯誤 – Aspicas

回答

3

他們都是一個JSONObjects,所以提取出來這樣

JSONObject subObj = json.getJSONObject("main"); //get class1 and class2  
JSONObject class1 = subObj.getJSONObject("class1"); 
JSONObject subjects= class1.getJSONObject("subjects"); 
JSONObject english= subjects.getJSONObject("english"); 
// Get the values 
String type = english.getString("type"); 
int moduleId = english.getInt("module_id"); 

JSONObject hindi= subjects.getJSONObject("hindi"); 
... 

現在去裏面印地文以同樣的方式和提取值。爲class2做同樣的事情。