我想从php脚本中获取一个字符串,并将其解析为javascript数组。但得到错误:语法错误:JSON.parse:行的意外字符: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++;
});
}
});
答案 0 :(得分: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]);
}
});
}
答案 1 :(得分:0)
没有必要解析它。此外,在您的 PHP 脚本中,您的header
应为:
header("Content-type: application/json; charset=utf-8");
在 JS 中,如果price
是一个字符串(或浮点数或整数),则无需将其作为json发送。为简化起见,您可能需要删除contentType: "application/json; charset=utf-8",
,