javascript - 使用撇号将 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:意外的标识符
怎么解决
解决方案
问题是您的 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);
推荐阅读
- typescript - 部分重叠的打字稿键
- react-native - Realm 在 android 10 的 react-native 中崩溃?
- rust - 实现 IntoIterator 以迭代内部集合时的生命周期冲突
- php - 如何从 Twitter API 获取缩进文本?
- scala - Dotty 是否支持改进?
- php - 来自 php curl 响应的特定值
- java - Spring MySQL com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链接失败
- c - 在C中使用指针打印数组
- asp.net-core - 带有 PUT/PATCH 的 OData 空对象
- javascript - javascript 使用下拉框添加动态列表