1

我想从 php 脚本中获取一个字符串,并将其解析为一个 javascript 数组。但收到错误:SyntaxError: JSON.parse: unexpected character for the line :JSON.parse(msg);

找了好久,不知道是哪里出了问题,求大神帮忙看看。谢谢。

PHP端:

header("application/json; charset=utf-8");
$sum = array(1,2,3,4,5);
echo json_encode($sum);

Javascript:

$.ajax({
    type: "POST",
    url: "save.php",
    contentType: "application/json; charset=utf-8",
    data: price,
    success: function (msg) {
        var i = 0;
        console.log(msg);
        var sum = new Array();
        sum = JSON.parse(msg);
        $('input.hj').each(function () {
            if (sum[i] > 0) {
                $(this).val(sum[i]);
            }
            i++;
        });
    }
});
4

2 回答 2

4

不要解析它:$.ajax为你解析它。只需使用提供给success回调的参数,这是已解析的数组。

如果您的浏览器无法检测到它是 JSON,请添加dataType参数。

另请注意,您不必i自己管理柜台:一个经过each

dataType: 'json',
success: function(sum){
    $('input.hj').each(function(i){
        if (sum[i] > 0) {
            $(this).val(sum[i]);
        }
    });
}
于 2013-06-08T18:55:45.893 回答
0

没有必要解析它。此外,在您的PHP脚本中,您header应该是:

header("Content-type: application/json; charset=utf-8");

在您的JS中,如果price是字符串(或浮点数或整数),则无需将其作为 json 发送。为简化起见,您可能需要删除contentType: "application/json; charset=utf-8",,

于 2013-06-08T18:57:37.433 回答