Json以js编码数据循环

时间:2012-09-04 01:39:11

标签: javascript

我有数据,PHP返回给JS,但我不知道如何循环访问信息...我有这个:

    result = call_data('get_chat.php');
            console.log(result);
    for(var data in result){

        alert(result[data]["id"]); //says undefined

    }

控制台日志显示:

   [{"eventtime":"0000-00-00 00:00:00","message":"test2","bywho":"dave","id":"2"},
    {"eventtime":"0000-00-00 00:00:00","message":"testttt","bywho":"dave","id":"1"}]  

所以我想从它循环每个数据,但我怎么做我真的很困惑!它每次都说未定义。

2 个答案:

答案 0 :(得分:4)

如果typeof result === "string",那么您仍需要解析响应,然后才能迭代它:

result = JSON.parse(call_data('get_chat.php'));

然后,正如其他人指出的那样,你应该使用一个简单的for循环Array

for (var i = 0, l = result.length; i < l; i++) {
    console.log(result[i]["id"]);
}

for..in循环将迭代所有可枚举键而不仅仅是索引。

答案 1 :(得分:2)

看起来你的php代码返回一个对象数组,所以你需要先遍历数组,然后像这样访问id键:

for (var i = 0; i < result.length; i++){
  var obj = result[i];
  console.log(obj.id); // this will be the id that you want
  console.log(obj["id"]); // this will also be the id  
}