JSON字符串中是否支持双引号?

时间:2017-09-25 18:26:00

标签: javascript json

当我在JSON字符串中通过\"转义双引号时,解析器失败。但是,当我使用JSON.stringify时,它能够以某种方式正确地转义字符串。

我怀疑我没有正确地逃避双引号。查看代码以获取更多详细信息。

var data = {
  "singleQuoteHtml": "<span class='qwer'>content</span>",
  "doubleQuoteHtml": "<span class=\"qwer\">content</span>",
  "singleQuote": "'hi'",
  "doubleQuote": "\"hi\""
};

var dataString = '{"singleQuoteHtml": "<span class=\'qwer\'>content</span>",'
  + '"doubleQuoteHtml": "<span class=\"qwer\">content</span>",'
  + '"singleQuote": "\'hi\'",'
  + '"doubleQuote": "\"hi\"'
  + '}';



function Parse()
{
  //Stringify is capable of creating single quotes and double quotes
  console.log(JSON.parse(JSON.stringify(data)));
  
  //When I escape double quotes myself the parser fails
  //Uncomment to see failure
  //console.log(JSON.parse(dataString));
}
<button onclick="Parse();">Parse JSON </button>

1 个答案:

答案 0 :(得分:4)

字符串文字'... "\"hi\""...'的计算结果为""hi"",没有反斜杠。

反斜杠被字符串文字吞噬为转义序列。

你需要将反斜杠转义为\\,以在字符串中放入实际的反斜杠。