如何让JSON.parse不去除字符串中的双引号?
如何让JSON.parse解析后保留双引号?
首先得明确:JSON里的字符串语法就是用双引号包裹内容,JSON.parse会把这层双引号当成语法标记,解析后返回的是引号内部的实际字符串值,所以你当前的代码里,解析结果自然不带外层双引号。
要让解析后的字符串包含双引号,有两种可行方案:
1. 在JSON字符串中转义双引号
如果你的需求是让解析后的字符串本身就包含双引号作为内容的一部分,需要在JSON里对双引号进行转义(用\"表示实际的双引号字符)。示例代码:
console.log(JSON.parse('"\\"a string\\""')); // 输出结果:"a string"
这里外层的双引号是JSON字符串的语法包裹,内部的\"会被JSON.parse解析成实际的双引号字符,最终得到带双引号的字符串。
2. 解析后手动添加双引号
如果只是需要在输出或使用时显示双引号,可以在解析完成后手动给字符串前后加上双引号:
const parsedStr = JSON.parse('"a string"'); console.log(`"${parsedStr}"`); // 输出结果:"a string"
另外你提供的前两行代码,其实是因为HTML转义的问题——\"和"是HTML里双引号的转义字符,实际传到JavaScript中的字符串是"a string",所以JSON.parse解析后得到的就是不带引号的a string。
内容的提问来源于stack exchange,提问作者thd
相关产品推荐
相关产品推荐

