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

使用Gson,是否可以解析这个JSON来获取这些值,而不创建代表JSON内容的整个类 struct ?

JSON:

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

推荐答案

You don't need to define any new classes, you can simply use the JSON objects that come with the Gson library. Heres a simple example:

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);

Plain and simple. If you find yourself repeating the same code over and over, then you can create classes to simplify the mapping and eliminate repetition.

Json相关问答推荐

在T—SQL中将STR_AGG与JSON_ARRAY结合起来

将JSON输入子数组转换为字符串顺序列表输出

过go 24小时内判断员事件的EventBridge事件模式

通过在织女星简化图上裁剪来显示文本

如何用JQ打印JSON文件的路径和键值

Jolt Spec 跳过数组中的第一个元素

Vega-Lite规范:尽管在规范中提供了数据,但显示空图表

使用 jq 工具将文本从 txt 文件转换为 json

jq可以在两个JSON对象列表中依次添加对象吗?

使用 jq 将消息转换为数组

使用 Jolt 使用键中的值创建带有硬编码键和值的 JSON 数组

如何将西里尔字母转换为 utf16

如何使用 gson 调用默认反序列化

如何使用 Newtonsoft.Json 反序列化 JSON 数组

IE8 原生 JSON.parse 错误导致堆栈溢出

将带有数据和文件的 JSON 发布到 Web Api - jQuery / MVC

什么 Python 框架用于没有前端的 REST/JSON Web 服务?

有没有办法使用 Jackson 将 Map 转换为 JSON 表示而不写入文件?

如何使用 Jackson 注释从 HttpResponse 反序列化 JSON 对象?

使用 application/json 优于 text/plain 的优势?