我正在尝试在javascript< - >中应用简单的转义过程php通讯。我不工作......我不确定为什么。
这是我写的一些测试代码:
<head>
<meta charset='utf-8'>
<title>Test</title>
</head>
<body>
<script>
JSON.parse('[{"id":"43","english":"ar\"m","korean":"\ud314","date":"49 minute(s) ago."}]');
</script>
</body>
</html>
转义字符是单词arm中的双引号。 打开页面时返回的错误是:
VM84:1 Uncaught SyntaxError: Unexpected token m in JSON at position 26
at JSON.parse (<anonymous>)
at test.html:11
(anonymous) @ test.html:11
答案 0 :(得分:5)
当您在JavaScript中包含JSON字符串作为字符串时,您必须加倍反斜杠,因为反斜杠是JavaScript和JSON语法中的元字符。
JSON.parse('[{"id":"43","english":"ar\\\"m","korean":"\\ud314","date":"49 minute(s) ago."}]');
对于使用三个 \"
个字符所需的\
,以便当JSON解析器看到它时,您有\"
。< / p>
请注意,不必须在服务器发送给客户端的实际 JSON中添加额外\
(或客户端发送给客户端)服务器)。
请注意,将JSON文本作为JavaScript字符串常量嵌入JavaScript源代码中的原因并不是很多。如果您使用像PHP这样的服务器端工具(或几乎任何东西)构建JavaScript源代码作为HTML文档的一部分,JSON可以作为普通的JavaScript对象初始化程序放入JavaScript源代码中,而无需额外的层引号使它看起来像一个JavaScript字符串常量。