json - 如何解析 JSON 中的特殊字符?

标签 json parsing

好吧,我知道我可能会因为问这样一个“简单”的问题而被骂(似乎是这里的趋势),但看看…

我正在构建一个 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/

相关文章:

json - Node Express 和 JSON 响应格式

asp.net-mvc - Json 结果在浏览器中提示 "Save As"对话框而不是被处理。 ASP.NET MVC

javascript - 无法使用 JavaScript 发送 POST-JSON-Request

c - memcpy 将数据转换为整数时产生错误的数字?

java - JSON 解析为 Java - Android 应用程序

php - 如何使用 "PHP Simple HTML DOM Parser"获取ajax产品加载页面上的所有产品详细信息

json - 无法从 NodeJS 中的 JSON 响应获取值

javascript - 我怎样才能访问 "this"内的项目

c# - 解析字符串 C#(可能使用正则表达式)

javascript - 使用Jquery显示link_to,返回JSON数据