À l'aide de Json pour ajouter des marqueurs à Google Maps | API

Je suis en train de tracer des repères sur une carte google map à l'aide de données provenant d'une Réponse Json. J'ai cherché un Débordement de Pile pour une réponse tous les jours, mais havn pas réussi à trouver une solution qui a fonctionné pour moi.

J'imagine qu'il a quelque chose à voir avec la façon dont je suis l'extraction de la Lat & de Gnl, mais juste ne peux pas mettre mon doigt sur elle. Ci-dessous sont mon code et le Json, le Json est à partir d'une API.

Où est l'erreur dans mon code?

Script

<script>   
  function initialize() {
              var myOptions = {
                  zoom: 4,
                  center: new google.maps.LatLng(34.397, 150.644),
                  mapTypeId: google.maps.MapTypeId.ROADMAP
              };

              map = new google.maps.Map(document.getElementById("map"), myOptions);
              };

  function getLocations() {

      $.getJSON("URL", function (json) {

          $.each(json["resultsPage"]["results"]["event"], function(i, entry){
              addMarker(entry.location.lat,entry.location.lng);
          });
      });
  }

  function addMarker(lat,lng) {
          marker = new google.maps.Marker({
          position: new google.maps.LatLng(lat,lng),
          map: map,
          });
          markersArray.push(marker);
  }
  </script>

Réponse Json

Dit de demande de données Json en utilisant le code suivant. Si je quitte le point d'interrogation à la fin j'obtiens un message d'erreur quand je le lance à travers http://jsonlint.com comme il y a un point d'interrogation au début du Json. Prenant cela semble résoudre le problème, mais je ne suis pas sûr à 100% que c'est ok?

    $.getJSON("http://api.songkick.com/api/3.0/events.json?location=clientip&apikey={your_api_key}&jsoncallback=?",
    function(data){
    //data is JSON response object
    });

Si je quitte le point d'interrogation à la fin j'obtiens un message d'erreur quand je le lance à travers http://jsonlint.com comme il y a un point d'interrogation au début du Json. Prenant cela semble résoudre le problème, mais je ne suis pas sûr à 100% que c'est ok?

Lorsque j'affiche le code dans le débogueur, j'obtiens " SyntaxError: Unexpected token ':' ", mais cette réponse est à venir à partir d'une API, donc je ne suis pas sûr de ce que je peux faire à ce sujet?

    {
"resultsPage": {
"status": "ok",
"results": {
"event": [
{
"type": "Concert",
"status": "ok",
"performance": [
{
"artist": {
"displayName": "Arcade Fire",
"uri": "http://www.songkick.com/artists/66758-arcade-fire?utm_source=16289&utm_medium=partner",
"identifier": [
{
"mbid": "52074ba6-e495-4ef3-9bb4-0703888a9f68",
"href": "http://api.songkick.com/api/3.0/artists/mbid:52074ba6-e495-4ef3-9bb4-0703888a9f68.json"
}
],
"id": 66758
},
"billingIndex": 1,
"billing": "headline",
"displayName": "Arcade Fire",
"id": 29913729
},
{
"artist": {
"displayName": "Doody and Kami",
"uri": "http://www.songkick.com/artists/6334389-doody-and-kami?utm_source=16289&utm_medium=partner",
"identifier": [],
"id": 6334389
},
"billingIndex": 2,
"billing": "support",
"displayName": "Doody and Kami",
"id": 29913734
},
{
"artist": {
"displayName": "Leah Gordon",
"uri": "http://www.songkick.com/artists/6334394-leah-gordon?utm_source=16289&utm_medium=partner",
"identifier": [],
"id": 6334394
},
"billingIndex": 3,
"billing": "support",
"displayName": "Leah Gordon",
"id": 29913739
}
],
"venue": {
"metroArea": {
"country": {
"displayName": "Canada"
},
"state": {
"displayName": "QC"
},
"displayName": "Montreal",
"uri": "http://www.songkick.com/metro_areas/27377-canada-montreal?utm_source=16289&utm_medium=partner",
"id": 27377
},
"lat": 45.5014288,
"displayName": "Phi Center",
"lng": -73.5564459,
"uri": "http://www.songkick.com/venues/1973969-phi-center?utm_source=16289&utm_medium=partner",
"id": 1973969
},
"popularity": 0,
"location": {
"lat": 45.5014288,
"lng": -73.5564459,
"city": "Montreal, QC, Canada"
},
"start": {
"time": null,
"date": "2013-02-23",
"datetime": null
},
"displayName": "Arcade Fire with Doody and Kami and Leah Gordon at Phi Center (February 23, 2013)",
"uri": "http://www.songkick.com/concerts/15215934-arcade-fire-at-phi-center?utm_source=16289&utm_medium=partner",
"id": 15215934
}
]
},
"perPage": 50,
"page": 1,
"totalEntries": 1
}
}  

Toute aide serait grandement appréciée. Grâce

Mis à jour

  • Vous utilisez json variable comme paramètre, et en boucle à l'aide de data, $.each(data["resultsPage"]["results"]["event"] devrait être $.each(json["resultsPage"]["results"]["event"] au premier abord.
  • Merci... je crois que j'ai été à regarder cet écran trop longtemps!
  • Quelle est la question? "Ça ne marche pas" n'est pas suffisamment d'informations pour aller hors de. En êtes-vous des messages d'erreur? Avez-vous redoublé par le biais de votre code avec un débogueur?
  • Peut-être pas le plus clair de la question, mais j'étais très fatigué quand je l'ai écrit! Je suis juste complètement à perte, j'ai passé des heures à faire de petits changements pour voir si elles ont un effet et rien... je n'avais pas été faire des erreurs mais je ne reçois pas de ma Réponse Json, "Inattendue": '" ... Mais cette responce est à venir à partir d'une API afin de ne pas trop sûr de ce que je peux faire à ce sujet?
  • envoyez-moi le code [email protected]
  • rappel de clé est la clé qui vous json résultat est enroulé autour de. vous devez spécifier le simple callbackKey Nom puis votre résultat json viendra comme callbackKeyName("jsonresult"); comme $.getJson() est une Requête GET sur la croix de domaine. donc, si vous êtes de mentionner ? ensuite il y a la réponse json viendra enveloppé à l'intérieur ?
  • à partir de jQuery site web: Important: Comme de jQuery 1.4, si le fichier JSON contient une erreur de syntaxe, la demande est généralement silencieuse. Éviter de fréquentes à la main l'édition de données JSON pour cette raison. JSON est un format d'échange avec les règles de syntaxe sont plus strictes que celles du JavaScript object notation littérale. Par exemple, toutes les chaînes de caractères représenté en JSON, qu'ils sont des biens ou des valeurs, doivent être entourés de guillemets. Pour plus de détails sur le format JSON, voir json.org.
  • JSONP Si l'URL contient la chaîne "callback=?" (ou similaires, tels que définis par l'API côté serveur), la demande est traitée comme JSONP à la place. Voir la discussion de la jsonp type de données en $.ajax() pour plus de détails.
  • de l'entrée.emplacement.lat,entrée.emplacement.le gnl??? je suppose qu'il doit être entrée.lieu.emplacement.lat

InformationsquelleAutor Michael | 2013-02-17