如何循环嵌套在json对象中的json数组

时间:2017-12-12 19:20:12

标签: java arrays json

我有这个json文本,它有一些与头部疾病相关的症状:

    {
    "Head": {
     "Agitation": {
      "conditions": "Generalized anxiety disorder,Medication reaction or side-effect"
                  },
     "Anxiety": {
      "conditions": "Generalized anxiety disorder,Depression (Adult)"
                  },
     "Apathy": {
      "conditions": "Depression (Adult),Medication reaction or side-effect,Dementia in head injury"
               }
            }
    }  

我想要的是使用for循环访问和显示此Head块中的每个症状,然后访问每个症状的条件并将它们分别存储为数组。

这个java代码有效,但它的功能有限:

        JSONObject jsonObject = (JSONObject) object;
        JSONObject bodyPart = (JSONObject) jsonObject.get("Head");
        JSONObject symptoms = (JSONObject) name.get("Agitation");
        String res = (String) symptoms.get("conditions");
        String[] tokens = res.split(","); 
        for (int i = 0; i < tokens.length; i++){
            System.out.println(tokens[i]);} 

除了只显示激动条件外,如何显示与每种症状相关的每个条件,而不必手动将其String值传递给get方法?

我不知道是否应该使用JSONArray“Head”代替JSONObject来访问症状。

2 个答案:

答案 0 :(得分:0)

假设这是org.json包,您可以使用JSONObject的{​​{1}}方法获取对象密钥的迭代器。

keys()

答案 1 :(得分:0)

我的朋友,如果你正在使用java,使用对象,没有纯文本,我建议使用Json.simple

通过这种方式,您可以拥有List个对象并使用所需的属性,请查看链接示例。