首页 > 解决方案 > 什么规则决定了 JSON 中的转义

问题描述

说我有这个:

const v = {
  val: ' bad \\"  string"'
};

console.log(JSON.stringify(v));

JSON.stringify 知道添加转义 \ 反斜杠,以便输出如下所示:

{"val":" bad \\\"  string\""}

这里遵循什么规则?stringify 例程如何知道添加第三个反斜杠?

标签: jsonstringescaping

解决方案


这里遵循什么规则?stringify 例程如何知道添加第三个反斜杠?

这个 JavaScript 字符串字面量

' bad \\"  string"'

表示这个字符串

 bad \"  string"

当转换为 JSON 时,双引号"和反斜杠\必须被转义,所以

" bad \\\"  string\""

顺其自然。直接来自json.org

JSON字符串语法图


推荐阅读