2016-05-13 17 views
1

AJAX呼び出しから返されるJSONデータがあります。私はJavaScriptでこのデータを解析する必要があります。JavascriptでJSONデータをループすることができません

データには、次のようになります。私は、複数の未定義のを取得したデータにこのコードを実行すると

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

それはなぜですか? (VaRのJSONは私のJSONデータを保持する変数である)

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

    console.log(obj.id); 
    } 

私はそうのような変数に直接JSONを割り当てる場合は:

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

そして、それが正常に動作します!

どのようなアイデアですか?ありがとう

+1

'から値を取得json'されますか? –

+0

jsonをどこに宣言しますか?返されたjsonデータを 'var json'にどのように振り分けますか? –

+1

あなたが得ている 'JSON'がストリング化されたJSONでないことを確認してください。その場合は 'JSON.parse(json_string)'を実行してからループしてください。 –

答えて

1

あなたが得ているJSONがちょうどストリング化されていることを確認してくださいJSON。その場合はJSON.parse(json_string)を実行してループ処理してください。

例:

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

それはあなたが使用している、JSONではありません。

  • これはオブジェクト配列です。
  • JSONを取得したら、JSON.parseというメソッドを使用してJSONを解析します。
...例の変数にこのJSONを割り当てた後、その上に反復使用:

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); 
    } 
関連する問題