java - 尝试获取 Json 中某个元素内的元素或其本身的值返回 null

标签 java json element gson

您好,我正在尝试从 JsonObject 获取元素的值。我正在使用java Gson 库。

这是代码的相关部分:

String s = "http://maps.googleapis.com/maps/api/directions/json?origin=30.065634,31.209473&destination=29.984177,31.440052&sensor=false";
URL url = new URL(s);

BufferedReader r = new BufferedReader(new InputStreamReader(
    ((HttpURLConnection) url.openConnection()).getInputStream()));

JsonStreamParser jsp = new JsonStreamParser(r);

JsonParser jp = new JsonParser();

JsonElement jsonElement =  jp.parse(r);

JsonObject jsonObject = jsonElement.getAsJsonObject();

System.out.println(jsonObject.get("summary"));

这是 Json 的一部分:

"status": "OK",   "routes": [ {
    "summary": "Mehwar Al Moneeb",
    "legs": [ {
      "steps": [ {
        "travel_mode": "DRIVING",
        "start_location": {
          "lat": 30.0655100,
          "lng": 31.2096600
        },
        "end_location": {
          "lat": 30.0654400,
          "lng": 31.2096000
        },
        "polyline": {
          "points": "mdovDksn}DLJ",
          "levels": "BB"
        },
        "duration": {
          "value": 1,
          "text": "1 min"
        },
        "html_instructions": "Head \u003cb\u003esouthwest\u003c/b\u003e on \u003cb\u003eOmar Toson\u003c/b\u003e toward \u003cb\u003eMohammed Roshdi\u003c/b\u003e",
        "distance": {
          "value": 9,
          "text": "9 m"
        }
      }

当我得到顶部元素“路由”时,它很好并打印它显示元素内部的内容,但是当我尝试获取如图所示的元素“摘要”时,返回为空,这就是显示在输出,所以随后我无法获取它的值。 怎么了?如何获取任意 JsonElement 的值?请尽快回复我。提前致谢。

最佳答案

Routes 是一个 JavaScript 数组。 Summary 是该数组中第一个对象的属性,因此您需要使用 jsonObject.getAsJsonArray("routes").get(0).get("summary");或等效的。我没有使用过你的 Java 库,但 JS 代码是 jsonObject.routes[0].summary

编辑:查找GSON Documentation并更新了代码。

关于java - 尝试获取 Json 中某个元素内的元素或其本身的值返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4425263/

相关文章:

java - 扩展应用程序还是使用单例?

java 使用 JPanel 的大小来调整组件的大小

android - 从 json 文件创建/更新 SQLite 数据库

javascript - 无法使用带有下划线模板的 json 对象 ¿ 如何正确修复/格式化它?

arrays - 如何从 static "Array of TPoint"中删除/删除特定成员或元素?

asp.net - CSS 与不同浏览器的兼容性

c - C语言中如何统计数组中的元素个数

java - 给定 7 张牌,获得所有可能的 5 张牌扑克牌

java - 当我使用 findElements 时,List<WebElement> 接口(interface)是如何实现的?

php - 有没有一种可靠的方法来检测 php 中字符串中的 base64 编码?