在java中使用GSON从JSON中提取数据

戈兰·科瓦奇

请帮助,这是我第一次使用 JSON/GSON。我从谷歌地理编码 API 获得了这个 JSON 数据,但不知道如何从中提取“formatted_address”。

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Google Building 41",
               "short_name" : "Google Bldg 41",
               "types" : [ "premise" ]
            },
            {
               "long_name" : "1600",
               "short_name" : "1600",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Amphitheatre Parkway",
               "short_name" : "Amphitheatre Pkwy",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Mountain View",
               "short_name" : "Mountain View",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Clara County",
               "short_name" : "Santa Clara County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "94043",
               "short_name" : "94043",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Google Bldg 41, 1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 37.4228642,
                  "lng" : -122.0851557
               },
               "southwest" : {
                  "lat" : 37.4221145,
                  "lng" : -122.0859841
               }
            },
            "location" : {
               "lat" : 37.4224082,
               "lng" : -122.0856086
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 37.4238383302915,
                  "lng" : -122.0842209197085
               },
               "southwest" : {
                  "lat" : 37.4211403697085,
                  "lng" : -122.0869188802915
               }
            }
         },
         "place_id" : "ChIJxQvW8wK6j4AR3ukttGy3w2s",
         "types" : [ "premise" ]
      }
   ],
   "status" : "OK"
}

这是我尝试过的,但它抛出 IndexOutOfBoundsException:

public String getLocationData(String location) {

        try {

            URL url = new URL(location);
            HttpURLConnection request = (HttpURLConnection) url.openConnection();
            request.connect();

            JsonParser parser = new JsonParser();
            JsonElement content = parser.parse(new InputStreamReader((InputStream) request.getContent()));
            JsonObject jObject = content.getAsJsonObject();
            JsonArray jArray = jObject.getAsJsonArray("results");
            jObject = jArray.get(1).getAsJsonObject();

            String result = jObject.getAsString();

            return result;

        } catch (MalformedURLException ex) {
            ex.printStackTrace();

        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return "fail";
    }
亚伦

我只能在没有堆栈跟踪的情况下猜测您的直接错误是什么,但您正在尝试访问仅包含一项的数组的第二项:

  • 所述results阵列包含单个元件(一个对象,其字段是address_components阵列,formatted_addressgeometryplace_idtypes

  • 你试图访问它的第二个元素jArray.get(1)(Java 中的数组是 0 索引的)

这是一个典型的原因IndexOutOfBoundsException

您可能希望访问唯一jArray.get(0)可以操作的项目,作为JsonObject您可以访问其字段的项目。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在java中使用转义的“\”从json数据中提取url

来自分类Dev

如何从响应中提取JSON数据-Java

来自分类Dev

使用jQuery从数据属性中提取JSON

来自分类Dev

使用python从json中提取数据

来自分类Dev

使用 Python 从 Json 中提取数据的问题

来自分类Dev

如何使用mongoimport从导入的json数据中提取模式(或提取)?

来自分类Dev

使用 Beanshell Postprocessor 修改从 JSON 提取器中提取的数据

来自分类Dev

在 Python 中使用 BeautifulSoup 从 html 中提取数据

来自分类Dev

无法在Logstash中使用grok从包含JSON和非JSON数据混合的日志行中提取字段

来自分类Dev

从JSON数组中提取数据

来自分类Dev

从数据中提取JSON数组

来自分类Dev

从异常的JSON中提取数据

来自分类Dev

从JSON数据中提取值

来自分类Dev

从异常的JSON中提取数据

来自分类Dev

PHP - 从 JSON 中提取数据

来自分类Dev

如何从 JSON 中提取数据?

来自分类Dev

在Java中使用REGEX从字符串中提取令牌

来自分类Dev

在JAVA中使用REGEX从方法调用中提取参数

来自分类Dev

如何使用GSON迭代JSON数组并从中提取每个JSON对象?

来自分类Dev

AngularJS-我如何从json响应中提取两段数据并在select(combobox)中使用它们?

来自分类Dev

如何从嵌套数组中提取JSON数据?使用Android

来自分类Dev

如何使用php从json数组中提取数据?

来自分类Dev

使用JMeter从JSON响应中提取某些数据

来自分类Dev

使用JavaScript从AJAX的JSON响应中提取数据

来自分类Dev

如何使用php从json数组中提取数据?

来自分类Dev

使用javascript从嵌套的json文件中提取数据

来自分类Dev

使用 Javascript 从 JSON 文件中提取数据到 HTML

来自分类Dev

使用beautifulsoup和python从json中提取数据

来自分类Dev

使用“and”语句从动态负载中提取json数据

Related 相关文章

  1. 1

    如何在java中使用转义的“\”从json数据中提取url

  2. 2

    如何从响应中提取JSON数据-Java

  3. 3

    使用jQuery从数据属性中提取JSON

  4. 4

    使用python从json中提取数据

  5. 5

    使用 Python 从 Json 中提取数据的问题

  6. 6

    如何使用mongoimport从导入的json数据中提取模式(或提取)?

  7. 7

    使用 Beanshell Postprocessor 修改从 JSON 提取器中提取的数据

  8. 8

    在 Python 中使用 BeautifulSoup 从 html 中提取数据

  9. 9

    无法在Logstash中使用grok从包含JSON和非JSON数据混合的日志行中提取字段

  10. 10

    从JSON数组中提取数据

  11. 11

    从数据中提取JSON数组

  12. 12

    从异常的JSON中提取数据

  13. 13

    从JSON数据中提取值

  14. 14

    从异常的JSON中提取数据

  15. 15

    PHP - 从 JSON 中提取数据

  16. 16

    如何从 JSON 中提取数据?

  17. 17

    在Java中使用REGEX从字符串中提取令牌

  18. 18

    在JAVA中使用REGEX从方法调用中提取参数

  19. 19

    如何使用GSON迭代JSON数组并从中提取每个JSON对象?

  20. 20

    AngularJS-我如何从json响应中提取两段数据并在select(combobox)中使用它们?

  21. 21

    如何从嵌套数组中提取JSON数据?使用Android

  22. 22

    如何使用php从json数组中提取数据?

  23. 23

    使用JMeter从JSON响应中提取某些数据

  24. 24

    使用JavaScript从AJAX的JSON响应中提取数据

  25. 25

    如何使用php从json数组中提取数据?

  26. 26

    使用javascript从嵌套的json文件中提取数据

  27. 27

    使用 Javascript 从 JSON 文件中提取数据到 HTML

  28. 28

    使用beautifulsoup和python从json中提取数据

  29. 29

    使用“and”语句从动态负载中提取json数据

热门标签

归档