javascript json对象解码

时间:2011-09-05 20:07:52

标签: javascript ajax json

我是JSON和AJAX的新手,希望有人可以帮助我。

对PHP脚本使用AJAX请求,我从SQL数据库中获取一些数据 - >编码为JSON字符串并将其发送回调用javascript。

这是我回来的数据

Array[{"categoryName":"Apartments For Rent"},{"categoryName":"Apartments For Sale"},{"categoryName":"Room For Rent (Shared)"},{"categoryName":"Paying Guest"},{"categoryName":"Office\/Shop\/Commercial Space"},{"categoryName":"Land"},{"categoryName":"Parking Spots"},{"categoryName":"Other"}]

如何从中获取单个'CategoryName'值(在while循环中)?

编辑:发送JSON数据的PHP代码

    $arr = array();
    while($row = mysql_fetch_array($temp,MYSQL_ASSOC))
    {
        $arr[]=$row;
    }
    echo json_encode($arr);

感谢您的帮助 ANKIT

3 个答案:

答案 0 :(得分:1)

使用eval()将其解码为javascript对象,然后循环遍历它,但是您必须在php端的开头或使用javascript删除“Array”。

var jsonStr = '[{"categoryName":"Apartments For Rent"},{"categoryName":"Apartments For Sale"}]';
jsonObj = eval("("+jsonStr+")");
for(var i in jsonObj){
  categoryName = jsonObj[i].categoryName;
}

来自:http://www.json.org/js.html

答案 1 :(得分:0)

您可以遍历数组并按索引访问各个元素:

for (var i = 0; i < data.length; i++) {
    alert(data[i].categoryName);
}

答案 2 :(得分:0)

i=0;
do{
    alert(data[i].categoryName);
    i++;
}
while(i<=data.length);

如Darin Dimitrov所述,但是在一个While循环中。