使用jquery解析php发送的json

时间:2011-06-24 08:11:18

标签: php jquery json

我的问题可能是许多问题的重复,但我已经尝试了所有选项,但无法解析我通过Ajax请求收到的json

所以即时通过Ajax调用得到这个json响应

{
    "audi": [
        "100",
        "200",
        "80",
        "90",
        "a3",
        "a4",
        "a6",
        "a8"
    ]
}

这是我收到的json以下是我尝试的选项之一

var obj = JSON.parse(html);
            alert("json decoded");

            for(var yahoo in obj)
            {
             alert(obj[yahoo]); // this line gives me 100,200,80,90,...
            }

非常感谢任何帮助...

编辑:

这是我的ajax电话

 $.ajax({
            url: "makemodel.php",
            type: "POST",
            data: {data:data},
            cache: false,
            async:false,
            dataType:'json',
            success: function (html) {           
            alert("success");           
            var obj = JSON.parse(html);
            alert("json decoded");          
            for(var yahoo in obj)
            {
             alert(obj[yahoo]);
            }

                      }//ajax success ends
           });//ajax ends

3 个答案:

答案 0 :(得分:3)

如果将jQuery的ajax调用的dataType选项设置为"json",jQuery将自动解析JSON代码。成功回调的第一个参数就是解析后的对象。

success: function (data) {   
   var s = 0;
   for (var i = 0;i < data['audi'].length;i++) {
       s += parseInt(data['audi'][i]);
   }
   alert("Sum of all audi prices: " + s);
}

答案 1 :(得分:1)

您还可以使用getJSON获取您的json数据,以下是示例。

var price = 0;
$.getJSON("make_model.php", {data: data}, function(response){
    $.each(response, function(key, value){
        price += value['price'];
    });
});
alert(price);

答案 2 :(得分:0)

也许,这段代码也可以帮到你:

var obj = jQuery.ajax({
   url: url,
   async: false,
   dataType: 'json'
}).responseText;

for(var yahoo in obj){
   alert(obj[yahoo]);
}