使用嵌套对象读取json值

时间:2015-06-05 05:55:00

标签: android 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及其相应的主题。这里是class1 - 英语和印地语。而对于class2 - 英语和乌尔都语。我试过以下

 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 个答案:

答案 0 :(得分: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做同样的事。