迭代json数组


Iterate through json array

我想获得json数组的值使用.each

我在这里设置数组

的值
$allRecords= array();
    while($row = mysql_fetch_array($result)){
        $oneRecord[] = array("orderNo"=>$row['order_no'],"orderDate"=>$row['order_date'],"orderTime"=>$row['order_Time']);
        array_push(&$allRecords,$oneRecord);
    }
    echo json_encode($allRecords);
这是我在jquery中做的
$.post("controllers/OrderViewer.controller.php?action=viewOrders",param,function(result){
 // var data = JSON.parse(result); // I tried this but doesn't work
 // var data= eval(result);  // I tried this but doesn't work
    $.each(result,function(index,v){
            alert(index +" "+ v.orderNo);  // return undefined for values
            // what should I write here to reach array element
    });
    });

我应该在。each中写什么来获取数组元素

这是响应数据结构

Array
(
[0] => Array
    (
        [orderNo] => 1
        [orderDate] => 2011-02-12
        [orderTime] => 00:00:10
    )
[1] => Array
    (
        [orderNo] => 2
        [orderDate] => 2011-02-12
        [orderTime] => 11:10:00
    )

)

如果indexv在您的each()循环中返回未定义的值,那么result的值一定不是您认为的。在这里取得进展的唯一方法是让您看到result实际是什么样子的。

实际上是一个数组吗?如果是,数组中的元素是什么?它们是你所期望的吗?如果它不是数组,那它是什么?

查看result的最好方法是在each()循环的开始处设置一个断点,然后在调试器中查看result。Chrome和Safari自带调试器,需要15分钟来学习如何设置断点,然后检查变量的值,一旦它到达断点。Firefox有一个免费的插件(Firebug),它也提供了一个调试器。IE有一些工具,你可以从MS下载一个调试器。