首页 > 解决方案 > 使用撇号将 Php 数组转换为 JavaScript 数组异常

问题描述

此代码有效

let json_data = '<?php echo json_encode(["name" => "test"]) ?>';
let data = JSON.parse(json_data);

问题此代码

let json_data = '<?php echo json_encode(["name" => "cote d'ivoire"]) ?>';
let data = JSON.parse(json_data);

未捕获的 SyntaxError:意外的标识符

怎么解决

标签: javascriptphp

解决方案


问题是您的 JSON 包含一个'字符,该字符与您用来分隔字符串的字符相同。

最简单的解决方案是将 JSON 视为 JavaScript(数据格式是编程语言的子集)。

let data = <?php echo json_encode(["name" => "cote d'ivoire"]) ?>;

如果您真的想生成一个可以解析的 JSON字符串,那么转义其中特殊字符的最佳工具是json_encode(它还会为您添加引号,因此您无需手动执行此操作) .

let json_data = <?php echo json_encode(json_encode(["name" => "test"])); ?>;
let data = JSON.parse(json_data);

推荐阅读