2012-04-05 11 views
2

Ich versuche, die Places-API zu verwenden, und ich versuchte ursprünglich, $ .ajax von jQuery zu verwenden, aber ich erhielt immer wieder einen unerwarteten Token-Fehler beim ersten Element der Datei. Aber ich habe dann erkannt, dass Sie JSONP nicht von der Places API bekommen können. Also unten ist eine Probe von dem, was es zurückgibt, ich kann nicht für das Leben von mir bekommen es ID in die Konsole zu drucken (für Vorspeisen) ... Könnte mich jemand vielleicht in die richtige Richtung zeigen?JSON-Datei von Google Places API abrufen

JSON zurück von Orten:

{ 
    "html_attributions" : [], 
    "results" : [ 
     { 
     "geometry" : { 
      "location" : { 
       "lat" : 33.7862590, 
       "lng" : -117.8531270 
      } 
     }, 
     "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png", 
     "id" : "5be9a13a28635cf8fd2ef3c62c24d51277a4ba58", 
     "name" : "Kimmies Coffee Cup", 
     "rating" : 3.30, 
     "reference" : "CnRpAAAANKLoOHJ1STFaFavIPjm2bpMDneGTv0AXfixyl-koF7KSK-lQSldk3c01RFJu9Gf62zXnRScte-dkPCBU8KuxCo7AMctfuaIhNkPE8RKENF9HeMlkuEg-Scp97--1VWJvjpNQjc6xRvdXsbf7V8NrSRIQnXjZBKbrSeSg2sTwBosKghoUEFlNDIN5cnVbn5n7aNtwycord-E", 
     "types" : [ "restaurant", "food", "establishment" ], 
     "vicinity" : "190 S Glassell St # B, Orange" 
     } 
     ] 
} 

Und das ist, was ich versuche, aber offensichtlich kann ich es nicht mehr verwenden ...

$(document).ready(function() { 
    $.ajax({ 
     url: 'https://maps.googleapis.com/maps/api/place/search/json', 
     dataType: 'jsonp', 
     type: 'GET', 
     data: { 
     location: '33.787794,-117.853111', 
     radius: 100, 
     name: 'coffee', 
     key: 'KEY_HERE', 
     sensor: false, 
     }, 
     success: function(data) { 
     console.log(data.results[0].id); 
    } 
    }); 
}); 

Irgendwelche Vorschläge wären toll, danke!

Antwort

0

jQuery verfügt über eine parseJSON-Methode, mit der ein JavaScript-Objekt aus JSON erstellt wird.

Sobald Sie dieses Objekt haben dann

obj.results finden Sie die Ergebnisse Array zurück.

Ergebnisse [0] .id gibt Ihnen die ID des ersten Ergebnisses.

+0

Ich sah das, ich war mir nicht sicher, ob es auf meine Situation zutrifft ... gut zu wissen, dass es tut! Ich bin mir nicht ganz sicher, wie ich die Daten (dh Ort, Radius, Name, Schlüssel, Sensor) zu dieser Funktion hinzufügen soll. Wohin geht dieser Teil? Vielen Dank! – sfgiants2010

0

Was ist das Ergebnis, wenn Sie den Datentyp json anstelle von jsonp verwenden?

+0

Es gibt mir: XMLHttpRequest kann nicht laden https://maps.googleapis.com/maps/api/place/search/json?location=33.787794%2C-117.853111&radius=100&name=coffee&key=MY_KEY&sensor=false. Origin http://website.com ist von Access-Control-Allow-Origin nicht erlaubt. – sfgiants2010

0

Sie brauchen keine for-Schleife, nur um die ID zu drucken. Sie können es entfernen und dann versuchen. Auch nicht sicher, was "myResult" ist. Es scheint nirgends definiert zu sein.

+0

Sorry, ich kopierte eine Funktion, die ich halb geändert hatte ... myResult soll der übergebene Parameter sein, ich werde meinen Beitrag bearbeiten. Und ich bekomme das gleiche Ergebnis ohne die Schleife. Ich ersetze einfach die Dinge, die ich in der Schleife gemacht habe (erzeuge eine Tabelle) mit dem Befehl console.log, um es zu vereinfachen und das Problem zu isolieren. – sfgiants2010

+0

Mein Vorschlag wäre, einen JS-Debugger zu verwenden, um genau zu sehen, was Sie als "Daten" in der Erfolgsfunktion erhalten, und dann auf die Daten entsprechend zuzugreifen. –

+0

Ich habe noch nie einen JS-Debugger verwendet, empfehlen Sie einen für Chrome? – sfgiants2010