[英]Parsing a JSON file with GSON in Java without model
我正在嘗試使用具有以下結構的 GSON 解析 JSON 文件:
[
{
"datasetid":"geonames-postal-code@public-us",
"recordid":"2d026c84998f913f0f0f5dd9f0d17ab0f78f5c44",
"fields":{
"longitude":"18.3475",
"coordinates":[
54.1486,
18.3475
],
"admin_name1":"Pomerania",
"admin_name2":"Gda\u0144sk County",
"admin_name3":"Przywidz",
"postal_code":"83-041",
"admin_code3":"220405",
"country_code":"PL",
"admin_code1":"82",
"latitude":"54.1486",
"admin_code2":"2204",
"place_name":"Sucha Huta",
"accuracy":"6"
}
},
{
"datasetid":"geonames-postal-code@public-us",
"recordid":"c5f689d377a9a460d3b06b772fc621088484e719",
"fields":{
"longitude":"18.505",
"coordinates":[
54.2232,
18.505
],
"admin_name1":"Pomerania",
"admin_name2":"Gda\u0144sk County",
"admin_name3":"Pruszcz Gda\u0144ski",
"postal_code":"83-041",
"admin_code3":"220404",
"country_code":"PL",
"admin_code1":"82",
"latitude":"54.2232",
"admin_code2":"2204",
"place_name":"\u017bu\u0142awka",
"accuracy":"6"
}
}
]
我只需要讀取“字段”中的值。 我瀏覽了整個互聯網,我所能看到的只是在類/模型中運行的示例。
如何在沒有課程和模型的情況下閱讀?
BufferedReader br = null;
Gson gson = new Gson();
br = new BufferedReader(new FileReader("C:\\res\\postal_codes.json"));
最簡單的方法是使用Gson 的默認解析函數Gson#fromJson(String json, Type typeOfT)
。
我已經包含了一些您可以打印的值作為示例。
Reader reader = new BufferedReader(new FileReader("C:\\res\\postal_codes.json"));
JsonArray jsonElements = new Gson().fromJson(reader, JsonArray.class);
for (JsonElement jsonElement : jsonElements) {
JsonObject item = jsonElement.getAsJsonObject();
// Write datasetid.
String datasetid = item.get("datasetid")
.getAsString();
System.out.println("Dataset ID: " + datasetid);
// Write recordid.
String recordid = item.get("recordid").getAsString();
System.out.println("Record ID: " + recordid);
// Write country_code.
JsonObject fields = item.getAsJsonObject("fields");
System.out.println("Country Code: " + fields.get("country_code").getAsString());
// Write coordinates.
JsonArray coordinates = fields.getAsJsonArray("coordinates");
System.out.println("Coordinates: " + coordinates.toString());
}
注意:最好的方法是使用 POJO。 我建議您關心它,但出於某種原因,如果您想在沒有它的情況下繼續使用它,它會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.