Parser json à partir de google maps géocodage inversé?
Comment puis-je analyser la réponse d'un géocodage inversé à l'aide de Google Maps JavaScript API v3.
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
}
}
Cette affiche l'adresse mise en forme d'amende dans le popup, mais je vais essayer de prendre d'autres pièces de la réponse, dans l'idéal, le nom de la rue ou de la route (si aucun nom de la rue). Mais lors de l'utilisation de obj = JSON.parse(json);
je reçois cette erreur dans la console.
SyntaxError: JSON.analyser: caractère inattendu
si c'était le PHP, je voudrais faire un tas de for each
boucles. Est-il possible de faire la même chose en JavaScript ?
heres un échantillon
{
"results" : [
{
"address_components" : [
{
"long_name" : "131",
"short_name" : "131",
"types" : [ "street_number" ]
},
{
"long_name" : "Stubbington Avenue",
"short_name" : "Stubbington Ave",
"types" : [ "route" ]
},
{
"long_name" : "Portsmouth",
"short_name" : "Portsmouth",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Portsmouth",
"short_name" : "Portsmouth",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Portsmouth",
"short_name" : "Portsmouth",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "England",
"short_name" : "England",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United Kingdom",
"short_name" : "GB",
"types" : [ "country", "political" ]
},
{
"long_name" : "PO2",
"short_name" : "PO2",
"types" : [ "postal_code_prefix", "postal_code" ]
},
{
"long_name" : "Portsmouth",
"short_name" : "Portsmouth",
"types" : [ "postal_town" ]
}
],
"formatted_address" : "131 Stubbington Avenue, Portsmouth PO2, UK",
"geometry" : {
"location" : {
"lat" : 50.8170795,
"lng" : -1.0709701
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 50.81842848029149,
"lng" : -1.069621119708498
},
"southwest" : {
"lat" : 50.8157305197085,
"lng" : -1.072319080291502
}
}
},
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
aussi heres un lien vers ma page de dev avec mon code actuel, en pleine
En résumé, comment puis-je obtenir "Stubbington Avenue" à partir de ce gâchis là-haut ?
console.log(json)
"mess" est valable objet de la syntaxe.. ne sais pas pourquoi le json.analyser serait un échec.. si vous pouvez la transformer en un objet vous pouvez ensuite pour les boucles for-each comme démontré ici stackoverflow.com/questions/8312459/...
console.log(json)
continue à dire que ses pas défini. Mais si j'ajoute d'alerte(json) à la page, une fenêtre pop-up de [object][object] etc
ne viens, suis-je tout simplement pas transmettre correctement ? obj = JSON.parse(results);
OriginalL'auteur Rudiger Kidd | 2014-03-04
Vous devez vous connecter pour publier un commentaire.
vous n'avez pas besoin de JSON.analyser ces résultats, il est déjà json.
pour obtenir "stubbington avenue" de cette json valide, vous pouvez utiliser
results[0].address_components[1].short_name
si vous voulez construire l'adresse réelle de ces composantes de l'adresse, vous pouvez parcourir et de voir les valeurs imprimées à la console comme ceci:
au lieu de l'exploitation forestière, les ajouter à une chaîne de caractères, ou les ajouter à un élément, ce que vous voulez faire avec eux.
OriginalL'auteur nebulae
Je suis à l'aide de Meteor et pour Meteor.js cela a fonctionné un peu différemment dans mon cas
Ci-dessous est le Météore du Côté Client et du Côté Serveur de Code qui a fonctionné pour moi:
OriginalL'auteur Manu