java - 没有很多类的 GSON 解析

我有以下 JSON,我只对获取元素 "status""lat""lng" 感兴趣.

使用 Gson,是否可以在不创建表示 JSON 内容的整个类结构的情况下解析此 JSON 以获取这些值?

JSON:

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

最佳答案

您不需要定义任何新的类,您可以简单地使用 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);

简单明了。如果您发现自己一遍又一遍地重复相同的代码,那么您可以创建类来简化映射并消除重复。

https://stackoverflow.com/questions/16595493/

相关文章:

javascript - 定义 "cyclic data structures"

python - 如何以人类可读的格式序列化 Python 对象?

json - 将参数传递给 jq 过滤器

Java - 嵌套在嵌套中的 Gson 解析

php - 如何在 symfony 中返回 json 编码格式错误

java - 为什么 Json 测试程序不起作用?

xml - CSV、JSON 和 XML 对于 REST API 的相对优点是什么?

c# - ASP.NET web api 无法获取 application/x-www-form-u

ios - 将 iOS objective-c 对象转换为 JSON 字符串

java - 如何使用 Java 和 Jackson 库对 Json 字符串进行多态反序列化?