繁星點(diǎn)點(diǎn)滴滴
2022-07-20 20:56:32
我正在嘗試解析一個(gè)包含一堆城市的大型 json 文件(以下是文件中的前兩個(gè)城市): [ { "id": 707860, "name": "Hurzuf", "country": "UA", "coord": { "lon": 34.283333, "lat": 44.549999 } }, { "id": 519188, "name": "Novinki", "country": "RU", "coord": { "lon": 37.666668, "lat": 55.683334 } } ]我想獲取“名稱”值與字符串匹配的城市的 ID: JsonParser parser = new JsonParser(); JsonElement jsontree = parser.parse(new FileReader("C:/Users/kevin/Eclipse-workspace-new/kevinzhou_CSCI201_assignment3/WebContent/city.list.json")); JsonElement je = jsontree.getAsJsonObject(); JsonArray ja = je.getAsJsonArray(); for (Object o : ja) { JsonObject city = (JsonObject) o; if(cityName == city.get("name").getAsString()) { System.out.println(city.get("id").getAsString()); } }但是,我收到以下錯(cuò)誤:java.lang.IllegalStateException: Not a JSON Object: 然后它在冒號(hào)后吐出整個(gè)文件。
2 回答

慕容708150
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
改成
// JsonElement je = jsontree.getAsJsonObject();
JsonArray ja = jsontree.getAsJsonArray();
因?yàn)樗陧攲影粋€(gè)數(shù)組

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
嘗試下面給定的代碼來(lái)處理這兩種情況
if (jsontree instanceof JsonObject) {
JsonObject jobject = new JsonObject(jsontree .getAsJsonObject());
} else if (jsontree instanceof JsonArray) {
JsonArray jarray = new JsonArray(jsontree .getAsJsonArray());
}
添加回答
舉報(bào)
0/150
提交
取消