谁能告诉我这是什么问题:
我正在将一个 PHP 数组回显到 javascript 中,如下所示:
<?php
$myArray=array();
foreach ($persons as $person) {
array_push($myArray,$person['id']);
}
?>
$(document).ready(function() {
populatePersons(JSON.parse(<?php echo json_encode($myArray);?>));
});
所以基本上我在 json 中回显了一个 PHP 数组格式,然后在 javascript 中解析但我在控制台日志中收到此错误:
SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data
谁能告诉我我做错了什么?
最佳答案
Can anybody tell me what I am doing wrong?
当 json_encode
生成 JSON 时,您正在将其回显
到 JavaScript 中。因此,它将被解释为 JavaScript 数组文字,而不是包含 JSON 的字符串。因此,您不能使用 JSON.parse
。
只是摆脱它:
populatePersons(<?php echo json_encode($myArray);?>);
如果您查看生成的代码,您会是这样的:
populatePersons(JSON.parse([1,2,3]));
但是 JSON.parse
需要一个 string(包含 JSON)。因为 JavaScript 执行类型转换,它会先将数组转换为字符串,这很可能不会生成有效的 JSON。
再说一次:你已经有了一个数组,不需要解析任何东西。
关于javascript - 为什么我收到有关 "unexpected non-whitespace after JSON data"的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30970330/