2015-10-07 68 views
0
{ 
    "hits": [ 
    { 
     "name": "Google", 
     "results": [ 
     { 
      "count": 27495 
     } 
     ] 
    }, 
    { 
     "name": "Yahoo", 
     "results": [ 
     { 
      "count": 17707 
     } 
     ] 
    } 
} 

我能夠通過下面的代碼讀取上述json的名稱和結果,但無法從JSON單獨打印計數值。如何提取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陣列

+0

[解析JSON陣列(http://stackoverflow.com/questions/854028/parse-json-array) – Mohit

+0

HTTP的可能的複製://計算器.com/a/31019989/3126639 – Waqar

回答

2

正如你解析了外JSONArray(點擊)內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()); 
     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()); 
    } 


     } 
    } 
+0

這不工作..得到一個空指針異常。 – user952977

+0

@ user952977現在嘗試 – WannaBeGeek

+1

它的工作表示感謝。我犯了愚蠢的錯誤.. :) – user952977