这是我的 PHP 文件(实际文件更复杂,但我发现即使使用最简单的代码也会失败):
<?php
$salida = array(1,2,3,4,5);
echo json_encode($salida);
?>
这是我得到的回复:
[1,2,3,4,5]
看似有效,其实不然。我的 AJAX 应用程序显示 'Unexpected token'
当我将它传递给 jQuery.parseJSON() 函数时。当我将其粘贴到 JSONLint 网页时,返回相同的错误。
我注意到,如果删除第一个字符并再次输入,JSON 就会变得有效。
这引起了我的思考,我使用十六进制编辑器检查了 JSON 字符串,并在文件开头发现了奇怪的字符:
[1,2,3,4,5]
这很奇怪,因为直到几天前该功能都运行良好,并且文件尚未被修改。
<?php>
标签位于文件的开头,编码为 utf-8。
我在 Windows 8.1 上使用 XAMPP 1.8.3。我重新安装了 XAMPP,以防万一出现问题,但是 json_enconde()
功能仍然无法正常工作。
有人知道如何解决这个问题吗?
谢谢
最佳答案
您需要保存没有 UTF8 BOM(字节顺序标记)的 PHP 文件(及其包含的所有文件)。如何执行此操作取决于您的编辑器。请注意,使用 UTF8 本身是完全可以的,并且受到鼓励。只是没有 BOM。
关于javascript - json_encode() 中的 json 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24091083/