2016-04-06 5 views
1

Nach mehreren Tests und Suchen, kann ich keine Möglichkeit finden, nach dem Parsen eines JSON zu navigieren; hier ist die post-Analyse Ergebnis:Javascript - Parsen von JSON einschließlich int als Objekt

Object {documentation: "https://geocoder.opencagedata.com/api", licenses: Array[2], rate: Object, results: Array[1], status: Object…} 

Dokumentation : "https://geocoder.opencagedata.com/api" Lizenzen : Array [2] Rate : Objekt Ergebnisse : Array [1] : Objekt Anmerkungen : Objekt Komponenten : Objekt Gebäude : "C" Stadt : "Bordeaux" Land : "Frankreich" country_code : "fr" Kreis : "Bordeaux" Postleitzahl : "33000" Straße : "Quai de Bacalan" Zustand : "Aquitaine" Vorstadt : „Bordeaux Maritime“

Zum Beispiel habe ich den Wert der Antwort mit dem folgenden Code bekommen:

var locname = response.status.code; 

Aber im Fall gibt es ein int als Objekt, wie folgt aus:

var locname = response.results.0.formatted; 

ich habe folgende Fehlermeldung:

Uncaught SyntaxError: Unexpected number

Ich versuche dem Charakter zu entkommen, ziehe ein Zitat, etc., aber ich konnte keine Lösung finden.

Antwort

0

Da die Ergebnisse ein Array Sie die folgende Syntax verwenden müssen:

var locname = response.results[0].formatted; 

Statt

var locname = response.results.0.formatted; 
+0

Vielen Dank, das funktioniert perfekt; Ich bin so ein Noob! – bubu

+0

@bubu toll, dann bitte die Frage als beantwortet markieren :) –

+0

Aufgrund meines neuen Accounts habe ich einen Cooldown aber ich werde ;-) – bubu

1

in Javascript ist ein Objekt auch zugänglich als Array, so zum Beispiel, Sie eine haben Objekt wie folgt:

var obj = {name: 'Hans Yulian', age: 21, message: 'Handsome'}; 
obj[0] = 'This is an number index'; 
obj['message'] = 'Too Handsome'; 

alle Schlüssel akzeptiert, solange sie nicht etwas t sind Hut enthält Sonderzeichen (- + =! usw.) und nicht mit Nummer gestartet. In jedem Fall haben Sie das Feld, das diese Ausnahme nicht erfüllt, dann müssen Sie es in Array-Weise zugreifen. Sie können den Wert auf die gleiche Weise wie Array zuweisen und auch den Inhalt dieses Feldes abrufen.

den Fall, dass Sie etwas für den Zugriff wie

var locname = response.results.0.formatted; 

Dann ist die Sache, die Sie brauchen

var locname = response.results[0].formatted; 

Sie versuchen

<script> 
    var obj = {name: 'Hans Yulian', age: 21, message: 'Handsome'}; 
    obj[0] = 'This is an number index'; 
    obj['message'] = 'Too Handsome'; 
    obj[1] = {}; 
    obj[1].name = 'Handsome'; 
    obj.handsome = []; 
    obj.handsome[0] = {}; 
    obj.handsome[0].hansyulian = 'So Handsome'; 

    console.log(obj); 
    console.log(obj[1].name); 
    console.log(obj.handsome[0].hansyulian); 
</script> 

eine HTML-Datei mit folgendem Inhalt machen und versuchen Sie, die Konsole zu sehen (Rechtsklick, Inspect-Element, Konsole für Google Chrome auswählen), um zu verstehen Was passiert dort

+0

Danke Hans, dass du dir Zeit genommen hast, mir zu antworten; Ich werde das mit Ihrem Beispiel vertiefen! – bubu