2017-05-08 238 views
-2

我可以知道如何從json數組中獲取JSON對象嗎?從json數組中獲取對象

JSON:

[ 
{ 
"id": 1, 
"region": "Ilocos Region (Region I)", 
"province": "Ilocos Norte", 
"city": "Laoag City" 
}, 
{ 
"id": 2, 
"region": "Ilocos Region (Region I)", 
"province": "Ilocos Norte", 
"city": "Batac City" 
}, 
{ 
"id": 3, 
"region": "Ilocos Region (Region I)", 
"province": "Ilocos Sur", 
"city": "Vigan City" 
} 
] 

我可以得到該地區,省,市,但我不能得到的ID。

這裏是我使用的代碼:

try { 
        br = new BufferedReader(new FileReader(path+"json/src_city.json")); 
        try { 
         while ((inputline = br.readLine()) != null) { 

           JSONArray a = (JSONArray) parser.parse(inputline); 
           for (Object o : a) { 
            JSONObject sample = (JSONObject) o;   

            id = (int) sample.get("id"); 
}} 
+0

我找到了我的問題的答案,它被解釋得很好。 http://stackoverflow.com/a/31194430/1840521 – LyodMichael

回答

0

如果你能得到的區域,可能是這個原因是id爲int,你不能用這樣的方式獲得:ID =( int)sample.get(「id」);

+0

嗨,我可以得到區域通過使用字符串值,因爲ID是INT我使用INT,我也無法獲得ID即使我使用字符串。 – LyodMichael

+0

歡迎來到SO。使用代碼格式(請參閱答案窗口中的「幫助」)將使您的答案更具可讀性。 – Gary99

0

我覺得傑森只使用字符串值,嘗試圍繞報價數量:

{ 
"id": "1", 
"region": "Ilocos Region (Region I)", 
"province": "Ilocos Norte", 
"city": "Laoag City" 
}, 

然後你可以檢索出來的對象

id = Integer.valueOf(sample.get("id")); 
0

我們可以以後解析回整從json數組中獲取每個jsonnode,如下所示。而jsonnode也提供瞭解析整數的方法。

if (a.isArray()) { 
    for (final JsonNode objNode : a) { 
     id = objNode.get("id").asInt(); 
    } 
}