Array的数据在Jquery中转换为字符

时间:2017-04-29 12:28:15

标签: javascript jquery

我想在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));
        });
    }   
});

1 个答案:

答案 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将包含数组。