我想在Javascript日志中显示PHP响应(Array)索引。我多次尝试过。在将其更改为JSON.parse(value)
时,它会提醒整个数据。但是在控制台上,它会打印出明智的数据。
在解析控制台console.log(JSON.parse(value));
时,它会提示;
VM2461:1 Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at String.<anonymous> (index.html:38)
at Function.each (jquery.min.js:2)
at Object.success (index.html:36)
at o (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at w (jquery.min.js:4)
at XMLHttpRequest.d (jquery.min.js:4)
PHP代码
$test = array("hello","world","hi");
echo json_encode($test);
Javascript代码
$.ajax({
url: "http://localhost/test.php",
type:"POST",
async:true,
data:{
"searchDat" : searchDat,
},
success: function(data){
alert( JSON.parse(data));
//alert(data[0]);
$.each(data, function(ind, value){
console.log(value);
//console.log(JSON.parse(value));
});
}
});
答案 0 :(得分:1)
data
是JSON字符串,而不是数组,因此$.each
正在迭代字符串中的字符。您应该将JSON.parse()
的结果放入变量中,然后循环遍历该变量。
success: function(data) {
var array = JSON.parse(data);
$.each(array, function(ind,value) {
console.log(value);
});
}
您还可以在dataType: 'json'
选项中使用$.ajax
,jQuery将自动为您解析JSON;那么data
将包含数组。