解析遵循带有不带引号的键的“宽松”语法的 JSON 数据会带来挑战,尤其是在旨在避免使用 eval 可能存在危险。
一种解决方案是使用正则表达式替换来清理 JSON 字符串。通过将不带引号的键值对替换为其带引号的等效项,我们可以创建一个符合标准语法的 JSON 字符串。
考虑以下示例:
var badJson = "{muh: 2}"; // Sanitize the JSON using regular expression var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": '); // Now we can safely parse the corrected JSON JSON.parse(correctJson);
这种方法允许我们解析“宽松”的 JSON 数据,不会影响安全性或触发 JSHint 警告,为您的测试目的提供方便且安全的 eval 替代方案。
以上是如何在不使用'eval”的情况下解析'轻松”JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!