[英]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.