一尘不染

没有很多类的GSON解析

json

我有以下的JSON,我只有在获得元素感兴趣"status""lat""lng"

使用 Gson ,可以解析此JSON以获取那些值,而无需创建表示JSON内容的整个类结构吗?

JSON:

{
  "result": {
    "geometry": {
      "location": {
        "lat": 45.80355369999999,
        "lng": 15.9363229
      }
    }
  },
  "status": "OK"
}

阅读 287

收藏
2020-07-27

共1个答案

一尘不染

您无需定义任何新类,只需使用Gson库随附的JSON对象即可。这是一个简单的例子:

JsonParser parser = new JsonParser();
JsonObject rootObj = parser.parse(json).getAsJsonObject();
JsonObject locObj = rootObj.getAsJsonObject("result")
    .getAsJsonObject("geometry").getAsJsonObject("location");

String status = rootObj.get("status").getAsString();
String lat = locObj.get("lat").getAsString();
String lng = locObj.get("lng").getAsString();

System.out.printf("Status: %s, Latitude: %s, Longitude: %s\n", status,
        lat, lng);

干净利落。如果发现自己一遍又一遍地重复相同的代码,则可以创建类来简化映射并消除重复。

2020-07-27