好吧,我知道我可能会因为问这样一个“简单”的问题而被骂(似乎是这里的趋势),但看看…
我正在构建一个 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 中的特殊字符?
最佳答案
JSON.parse 需要 JavaScript 字符串。
JavaScript 字符串文字使用反斜杠进行转义。
JSON 使用反斜杠进行转义。
所以...
JSON.parse('["\\\\"]')
// ["\"]
JSON.parse("['\"']")
// SyntaxError: Unexpected token '
// JSON doesn't have single quotes as string delimiters!
JSON.parse('["\\b"]')
// [""]
JSON.parse('["\\f"]')
// [""]
JSON.parse('["\\\\b"]')
// ["\b"]
JSON.parse('["\\\\f"]')
// ["\f"]
关于json - 如何解析 JSON 中的特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27915531/