2012-08-05 2 views
0

Comment récupérer "localité" de JSON lieux google apiComment récupérer "localité" de JSON lieux google api

dans cette réponse 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" ] 
    } 

J'utilise ce code pour obtenir "lat" et "lng":

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

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

comment puis-je obtenir la valeur "localité"? J'utilise Java.

Merci,

Carlos.

+1

Le problème est qu'il n'y a pas de valeur de la localité. Ce que vous devez faire à la place est d'itérer sur les parties que google vous sert comme address_components, regardez dans leur type et arrêtez quand vous trouvez le bon. Ensuite, récupérez le nom long de cet objet. –

+0

Merci. Résolu. –

Répondre

1

Je suis ton chemin.

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

Le JSON d'origine devrait être

{ 
    "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" ] 
    } 
    ] 
    } 
} 
Questions connexes