来自php脚本的JSON.parse

时间:2014-08-29 19:24:39

标签: php jquery json

我试图从php脚本中获取一些JSON。当我试图解析它时,它失败了。

在php脚本中我使用json_encode($ result),在jQuery部分我使用这段代码:

complete: function(response){
                console.log(response);
                var parsed = JSON.parse(response);
                var arr = [];
                for(var x in parsed){ arr.push(parsed[x]);}
                jQuery('#input_1_3').val(arr[1]);
                jQuery('#input_1_4').val(arr[2]);
            }

当我在控制台中记录响应时,我得到了这个:

 Object { readyState=4, responseText="{"personeelsNummer":"1",...oonplaats":"Meerhout"}0", status=200, meer...}

我在这里看不到什么?

2 个答案:

答案 0 :(得分:1)

使用:

var parsed = JSON.parse(response.responseText);

response是一个对象,其属性多于服务器请求中的文本内容。

答案 1 :(得分:1)

首先要做的事情:

确保您的$.ajax dataType: "json"作为设置的一部分。

$.ajax({
    dataType: 'json',
    //other settings
});

第二

您正在使用complete。在complete上,参数为jqXHRtextStatus。因此,它没有被解析,它是整个xhr对象。

为此你必须使用success。参数是datatextStatusjqXHR,如果您按照我的说法使用了dataType(并且您的JSON有效),那么data将是您的 - 解析了json。

$.ajax({
    dataType: 'json',
    //other settings
    success: function(data, textStatus, jqXHR){
            //my awesome parsed json it's on 'data'
    },
    error: function(jqXHR, textStatus, errorThrown){
            //my awful json which failed to parse, and I can know the error on 'errorThrown'
    }
});