0

JSON Google Places APIから「地域」を取得する方法

この json 応答で:

{
   "html_attributions" : [],
   "result" : {
      "address_components" : [
         {
            "long_name" : "1623",
            "short_name" : "1623",
            "types" : [ "street_number" ]
         },
     {
        "long_name" : "1/2 N Cahuenga Boulevard",
        "short_name" : "1/2 N Cahuenga Boulevard",
        "types" : [ "route" ]
         },
         {
            "long_name" : "Los Angeles",
            "short_name" : "Los Angeles",
            "types" : [ "locality", "political" ]
         },
         {
            "long_name" : "CA",
            "short_name" : "CA",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "US",
            "short_name" : "US",
            "types" : [ "country", "political" ]
         },
     {
        "long_name" : "90028",
        "short_name" : "90028",
        "types" : [ "postal_code" ]
     }

私はこのコードを使用して「lat」と「lng」を取得しています:

            JSONObject jsonLocation = c.getJSONObject("geometry").getJSONObject("location");

            places_latitude = jsonLocation.getString("lat");
            places_longitude = jsonLocation.getString("lng");

「地域」の値を取得するにはどうすればよいですか? 私はJavaを使用しています。

ありがとうございました、

カルロス。

4

1 に答える 1

1

私はあなたの道に従います。

JSONArray address_components = c.getJSONObject("result").getJSONArray("address_components");

JSONObject obj = address_components.getJSONObject(2)
/*
 obj is 
  {
            "long_name" : "Los Angeles",
            "short_name" : "Los Angeles",
            "types" : [ "locality", "political" ]
   }
 */
String your_result = obj.getJSONArray("types").get(0).toString();

元のjsonは

{
   "html_attributions" : [],
   "result" : {
      "address_components" : [
         {
            "long_name" : "1623",
            "short_name" : "1623",
            "types" : [ "street_number" ]
         },
     {
        "long_name" : "1/2 N Cahuenga Boulevard",
        "short_name" : "1/2 N Cahuenga Boulevard",
        "types" : [ "route" ]
         },
         {
            "long_name" : "Los Angeles",
            "short_name" : "Los Angeles",
            "types" : [ "locality", "political" ]
         },
         {
            "long_name" : "CA",
            "short_name" : "CA",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "US",
            "short_name" : "US",
            "types" : [ "country", "political" ]
         },
     {
        "long_name" : "90028",
        "short_name" : "90028",
        "types" : [ "postal_code" ]
     }
    ]
   }
}
于 2012-08-09T04:10:12.553 に答える