在javascript中提取多维json数组

时间:2011-09-22 05:50:09

标签: javascript jquery

我正在从服务器读取json响应,该服务器使用以下php代码从sqlite数据库发送多维数组:

while ($data = $result->fetchArray(SQLITE_NUM)) {
echo json_encode($data);

这可以正常工作,并以下列格式将数据作为字符串发送出去:     [1, “委员会1”, “Floor1”,1,100,1, “D1”, “D2”, “D3”, “D4”, “D5”, “D6”, “D7”, “D8”, “D9” , “D10”]     [1 “Board2”, “Floor2”,1,100,1, “D1”, “D2”, “D3”, “D4”, “D5”, “D6”, “D7”, “D8”, “D9” , “D10”]     [1 “Board3”, “层3”,1,100,1, “D1”, “D2”, “D3”, “D4”, “D5”, “D6”, “D7”, “D8”, “D9” ,“D10”]

我正在使用jQuery使用以下代码从服务器请求此数据,并希望将收到的数据保存在javascript数组中,以便我可以使用例如data [0] [1]来引用单个项目“Board2”元素 - 但似乎无法做到这一点?

代码适用于单个数组,但不适用于多数组?

JAVASCRIPT CODE:

function requestMtrConfig() {
$.ajax({
    url: '/php/getmtrconfig.php',
    async:false,                    // synchronous read
    success: function(datas) {          
               data[0] = datas[0];
             data[1] = datas[1];
             data[2] = datas[2];
        }

    },       
    cache: false
});
}

如何将返回的json数组放入多维javascript数组中? PS:我已经创建了一个名为data的全局多维JavaScript数组变量。

非常感谢任何帮助 谢谢 弗兰克多布斯

1 个答案:

答案 0 :(得分:2)

问题是你发送了几个JSON而没有将它们连接在一起。这与发送JSON数组不同。

建议的补救措施:

$json = array();
while ($data = $result->fetchArray(SQLITE_NUM)) {
  $json[] = $data;
}
echo json_encode($json);