2016-05-13 10 views
1

Ich habe einige JSON-Daten von einem AJAX-Aufruf zurückgegeben. Ich muss dann diese Daten in Javascript analysieren.Schleife durch JSON-Daten in Javascript funktioniert nicht

Die Daten sehen so aus:

[ 
{ 
"id": "23", 
"date_created": "2016-05-12 14:52:42" 
}, 
{ 
"id": "25", 
"date_created": "2016-05-12 14:52:42" 
} 
] 

Warum es ist, wenn ich diesen Code auf den Daten ausführen, die ich mehr undefiniert sind bekommen? (var json die Variable ist meine Json Daten halten)

for(var i = 0; i < json.length; i++) { 
    var obj = json[i]; 

    console.log(obj.id); 
    } 

Allerdings, wenn ich die json direkt auf die Variable zuweisen wie folgt:

var json = [ 
{ 
"id": "23", 
"date_created": "2016-05-12 14:52:42" 
}, 
{ 
"id": "25", 
"date_created": "2016-05-12 14:52:42" 
} 
]; 

Dann funktioniert es gut!

Irgendwelche Ideen Leute? Danke

+1

Wo ist 'json' von Wert zu bekommen? –

+0

Wo deklarieren Sie json? Wie weisen Sie 'var json' die zurückgegebenen json-Daten zu? –

+1

Stellen Sie sicher, dass die JSON-Datei, die Sie erhalten, nicht mit JSON-Zeichenfolgen versehen ist. In diesem Fall 'JSON.parse (json_string)' und dann loop und mehr ... –

Antwort

1

Stellen Sie sicher, dass die JSON Sie bekommen, ist nicht nur stringified JSON. In diesem Fall tun Sie JSON.parse(json_string) und dann Schleife und mehr Verarbeitung.

Beispiel:

var string_json = '[{"a":1},{"b":2}]'; // may be your API response is like this 
var real_json = JSON.parse(string_json); // real_json contains actual objects 
console.log(real_json[0].a, real_json[1].b); // logs 1 2 
0

Es ist kein JSON, die Sie verwenden.

  • Es ist ein Objekt-Array.
  • Wenn Sie JSON erhalten, analysieren Sie diesen JSON mit der Methode JSON.parse.
  • dieses JSON einer Variablen zuweisen und verwenden Iteration über es dann ...

Ex:

var json ='[{"id": "23","date_created": "2016-05-12 14:52:42"},{"id": "25","date_created": "2016-05-12 14:52:42"}]'; 
var parsedJson = JSON.parse(json); 
for(var i = 0; i < parsedJson.length; i++) { 
    var obj = parsedJson[i]; 

    console.log(obj.id); 
    } 
Verwandte Themen