2015-06-05 30 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 - английский и хинди. и для класса 2 - английский и урду. Я пробовал как ниже

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"); 
... 

Теперь идите внутрь Hindi таким же образом и извлекать значения. Сделайте то же самое для класса 2.

Смежные вопросы