【发布时间】:2015-01-13 05:40:07
【问题描述】:
好吧,我知道我可能会因为提出这样一个“简单”的问题而被大喊大叫(似乎是这里的趋势),但请检查一下……
我正在构建一个 JSON 解析器,除了解析器处理特殊字符的能力外,一切都正常工作。我正在尝试实现http://www.json.org/ 上列出的相同特殊字符,即 [", \, /, b, f, n, r, t, u]。
不过,当我通过内置 JSON.parse 方法运行这些特殊字符时,它们中的大多数要么返回错误,要么根本不执行任何操作
JSON.parse('["\\"]')
SyntaxError: Unexpected end of input
JSON.parse("['\"']")
SyntaxError: Unexpected token ‘
JSON.parse('["\b"]')
SyntaxError: Unexpected token
JSON.parse('["\f"]')
SyntaxError: Unexpected token
是的,我看到另一个帖子"Parsing JSON with special characters",它与我的问题无关。不要让我问另一个问题,我都看过了。解析 JSON 中的特殊字符是如何工作的?
【问题讨论】:
-
反斜杠代码正在由 javascript 解释。如果要在字符串中传递反斜杠,则需要对其进行转义。因此,例如,要让 JSON.parse “看到”
\n,您需要JSON-parse('["\\n"]')