hh5*_*188 2 javascript json escaping
假设我有一个对象变量:
var obj = {
key: '\"Hello World\"'
}
Run Code Online (Sandbox Code Playgroud)
JSON.stringify然后我尝试在 Chrome devtools 控制台中使用将其解析为字符串:
JSON.stringify(obj) // "{"key":"\"Hello World\""}"
Run Code Online (Sandbox Code Playgroud)
我得到结果了"{"key":"\"Hello World\""}"。然后我把它交给一个字符串
var str = '{"key":"\"Hello World\""}'
Run Code Online (Sandbox Code Playgroud)
至少我尝试将其转换回 obj:
JSON.parse(str);
Run Code Online (Sandbox Code Playgroud)
但浏览器告诉我错误Uncaught SyntaxError
让我困惑的是为什么这是错误的?我从原始对象获取字符串,我只想将其返回。
我该如何解决这个问题?如果我想做像将 obj 转换为字符串并将其返回这样的工作,我该怎么办?
您尝试通过将 JSON 包装在'字符中将其转换为字符串文字,但\字符在 JavaScript 字符串文字中具有特殊含义,并且在到达 JSON 解析器之前由 JavaScript 解析器\"转换。"
你也需要逃避\角色。
var str = '{"key":"\\"Hello World\\""}'
Run Code Online (Sandbox Code Playgroud)
也就是说,一般来说,最好不要尝试将 JSON 嵌入到 JavaScript 字符串文字中,只是为了首先使用 JSON.parse 来解析它们。JSON 语法是 JavaScript 的子集,因此您可以直接使用它。
var result = {"key":"\"Hello World\""};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |