如何在JSON数组中提取JSON数组

时间:2015-10-07 07:07:42

标签: java json

{
  "hits": [
    {
      "name": "Google",
      "results": [
        {
          "count": 27495
        }
      ]
    },
    {
      "name": "Yahoo",
      "results": [
        {
          "count": 17707
        }
      ]
    }
}

我能够通过以下代码读取上述json的名称和结果,但无法单独从JSON打印计数值。

JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);
if(null!=jsonObject.get("hits"))
{
    System.out.println("Inside IF...");
    JSONArray ja = (JSONArray) jsonObject.get("hits");
    for(int i=0;i<ja.size() ; i++)
    {
        System.out.println("Inside FOR...");
        JSONObject tempJsonObj = (JSONObject) ja.get(i);
        System.out.println(tempJsonObj.get("name").toString());
        System.out.println(tempJsonObj.get("results").toString());
    }
}

如何在JSON数组中提取JSON数组

1 个答案:

答案 0 :(得分:2)

就像你为外面的JSONArray(点击)解析一样。对内在(&#34;结果&#34;)遵循相同的内容:

JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);
    if(null!=jsonObject.get("hits"))
    {
        System.out.println("Inside IF...");
        JSONArray ja = (JSONArray) jsonObject.get("hits");
        for(int i=0;i<ja.size() ; i++)
        {
            System.out.println("Inside FOR...");
            JSONObject tempJsonObj = (JSONObject) ja.get(i);
            System.out.println(tempJsonObj.get("name").toString());
            System.out.println(tempJsonObj.get("results").toString());
      JSONArray innerarray = (JSONArray) tempJsonObj.get("results");
    for(int i=0;i<innerarray.size() ; i++)
    {
     JSONObject tempJsoninnerObj = (JSONObject) innerarray.get(i);
            System.out.println(tempJsoninnerObj.get("count").toString());
    }


        }
    }