我试图从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...}
我在这里看不到什么?
答案 0 :(得分:1)
使用:
var parsed = JSON.parse(response.responseText);
response
是一个对象,其属性多于服务器请求中的文本内容。
答案 1 :(得分:1)
首先要做的事情:
确保您的$.ajax
dataType: "json"
作为设置的一部分。
$.ajax({
dataType: 'json',
//other settings
});
第二
您正在使用complete
。在complete
上,参数为jqXHR
和textStatus
。因此,它没有被解析,它是整个xhr对象。
为此你必须使用success
。参数是data
,textStatus
和jqXHR
,如果您按照我的说法使用了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'
}
});