如何使用jQuery读取JSON响应

时间:2013-06-25 08:57:30

标签: jquery json

我试图用jQuery读取响应,我不知道它如何与响应一起工作。

请在此处查看带有js post + response的小示例代码:

$.ajax({
    url: "http://localhost/ajaxpost/ajax.php",
    type: "post",   
    data: "action=check&uid=1",
    dataType: "json",
    success: function(data){
        $("#result").html('submitted successfully');
        response = JSON.parse(data);
        status = response.status;
        alert(status); 
    },
    error:function(){
        $("#result").html('there is error while submit');
    }   
});

回应是:

{"first":"John","last":"Heyden","uid":"1","token":"10","value":"100000","friends":"23","country":"australia","status":"online"}

现在我想要的是alert online

有人可以告诉我这里缺少什么吗?


当我删除 dataType:“json”,时,这可以正常使用

success: function(data){
    $("#result").html('submitted successfully');
    var r = jQuery.parseJSON(data);
    alert(r.status);

4 个答案:

答案 0 :(得分:3)

没有必要解析响应,因为dataType设置为json,该方法将解析响应json ans将其传递给处理程序

alert(data.status)

例如:

$.ajax({
    url: "http://localhost/ajaxpost/ajax.php",
    type: "post",   
    data: "action=check&uid=1",
    dataType: "json",
    success: function(data){
        $("#result").html('submitted successfully');
        status = data.status;
        alert(status); 
    },
    error:function(){
        $("#result").html('there is error while submit');
    }   
});

答案 1 :(得分:2)

只做

alert(data.status);   // online

答案 2 :(得分:0)

不确定你的解析方法。由于您使用的是jQuery,请尝试:

var r = jQuery.parseJSON(data);
alert(r.status);

答案 3 :(得分:0)

由于你将dataType定义为json,你不需要解析它,它将被转换为对象,所以只需:

$.ajax({
    url: "http://localhost/ajaxpost/ajax.php",
    type: "post",   
    data: "action=check&uid=1",
    dataType: "json",
    success: function(data){
        $("#result").html('submitted successfully');
        //Don't need this line 
        //response = JSON.parse(data);
       //you called the object data, so use it
        status = data.status;
        alert(status); 
    },
    error:function(){
        $("#result").html('there is error while submit');
    }   
});