将json元素存储到javascript数组中


storing json element into javascript array

我使用ajax用PHP检索数据库数据并将其转换为json

<?php
echo json_encode($data);
?>
ajax函数

ajaxCall("getdata.php", container, function (data) {
    var count = data.length
    var i;
    var array[];
    for (i = 0; i < count; i++) {
        container.innerHTML += data[i].property; //this is doing well
        array[i] = data[i].property; //this when goes wrong;
    }
});

当我试图回忆array[i]它的返回未定义,我做错了什么?

JavaScript中的数组初始化应该像 var array = [];

ajaxCall("getdata.php", container, function (data) {
    var count = data.length
    var i;
    var array = [];
    for (i = 0; i < count; i++) {
        container.innerHTML += data[i].property; //this is doing well
        array[i] = data[i].property; //this when goes wrong;
    }
});

或者您可以使用 for...in 循环来迭代, push() 为数组添加值

ajaxCall("getdata.php", container, function (data) {
    var array = [];
    for (var v in data) {
        container.innerHTML += v.property; //this is doing well
        array.push(v.property); //this when goes wrong;
    }
});

使用JSON.parse.

演示:

var json = '[{"result":"OK","count":1}, {"result":"NOK","count":2}]',
obj = JSON.parse(json);
alert(obj[0].result);
alert(obj[1].result);
alert(obj[0].count);
alert(obj[1].count);

在你的例子中,它可以是这样的:

ajaxCall("getdata.php", container, function (data) {
    array = JSON.parse(data);    
});