如何从地理编码网址获取状态元素

时间:2012-12-29 12:45:23

标签: java gson latitude-longitude geocode google-latitude

我想从地理编码网址获取status元素的值。

{

    "results": [
        {
            "address_components": [
                {
                    "long_name": "India",
                    "short_name": "IN",
                    "types": [
                        "country",
                        "political"
                    ]
                }
            ],
            "formatted_address": "India",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 35.5043404,
                        "lng": 97.395555
                    },
                    "southwest": {
                        "lat": 6.747138899999999,
                        "lng": 68.1623859
                    }
                },
                "location": {
                    "lat": 20.593684,
                    "lng": 78.96288
                },
                "location_type": "APPROXIMATE",
                "viewport": { … }
            },
            "types": [
                "country",
                "political"
            ]
        }
    ],
    "status": "OK"

}
  

我可以使用以下代码获得纬度。我试图获取状态元素,但仍然没有弄清楚如何做到这一点。我使用gson。

URL url = new URL("http://maps.googleapis.com/maps/api/geocode/json?address=india&sensor=false");

  String output = new Scanner(url.openStream()).useDelimiter("\\A").next();
  JsonParser jsonParser = new JsonParser();
  JsonObject lat = jsonParser.parse(output).getAsJsonObject().getAsJsonArray("results").get(0).getAsJsonObject().getAsJsonObject("geometry").getAsJsonObject().getAsJsonObject("location");
   String latitude = lat.get("lat").getAsString();

请帮忙。

1 个答案:

答案 0 :(得分:2)

您可以使用

String status = jsonParser.parse(output).getAsJsonObject().get("status").getAsString();

但请确保仅解析输出一次,即将jsonParser.parse(output).getAsJsonObject()的结果存储在局部变量中。