You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP传递JSON到JavaScript报错:JSON.parse语法错误排查

问题原因及解决方法

错误根源

你的代码核心错误在于对json_encode的作用理解有误:json_encode处理PHP数组后,生成的是符合JavaScript字面量规范的JSON字符串(比如["John","Mary","Peter","Sally"]),但你却额外用JSON.parse()去解析它。

当PHP渲染输出时,$myTest会被直接替换为JSON内容,最终生成的JavaScript代码是:

const displayExternalUrl = JSON.parse(["John","Mary","Peter","Sally"]);

JSON.parse()要求参数必须是JSON格式的字符串,但这里传入的是一个JavaScript数组字面量,不符合参数要求,因此抛出语法错误。

修复方案

直接去掉JSON.parse(),将$myTest的值直接赋值给JavaScript变量即可:

$testArray = array("John", "Mary", "Peter", "Sally");
$myTest = json_encode($testArray);
$javascript = "
                <script>
                const displayExternalUrl = $myTest;
                console.log(displayExternalUrl);
                 </script>
                 ";
echo $javascript;

如果非要使用JSON.parse()(完全没必要,仅作演示),需要将$myTest用引号包裹,让它成为JavaScript字符串:

$javascript = "
                <script>
                const displayExternalUrl = JSON.parse('$myTest');
                console.log(displayExternalUrl);
                 </script>
                 ";

不过这种方式存在转义风险,远不如直接赋值简洁安全。

内容的提问来源于stack exchange,提问作者dhany saguntoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:14:55