我正在尝试显示双引号,但它显示了一个反斜杠:
"maingame": {
"day1": {
"text1": "Tag 1",
"text2": "Heute startet unsere Rundreise \\\"Example text\\\". Jeden Tag wird ein neues Reiseziel angesteuert bis wir.</strong> "
}
}
在html中渲染时显示为\"Example text\"
。什么是正确的方法?
答案 0 :(得分:388)
试试这个:
"maingame": {
"day1": {
"text1": "Tag 1",
"text2": "Heute startet unsere Rundreise \" Example text\". Jeden Tag wird ein neues Reiseziel angesteuert bis wir.</strong> "
}
}
(引号前面只有一个反斜杠(\
)。
答案 1 :(得分:18)
它显示反斜杠,因为你也在逃避反斜杠。
除了双引号外,如果要在JSON引用字符串中包含反斜杠,还必须转义反斜杠。但是,如果您打算在转义序列中使用反斜杠,显然您不应该逃避它。
答案 2 :(得分:17)
使用\\\"
的时间和地点。好的,如果你像我一样,当我发现这个帖子后,当我意识到自己在做什么时,你会感觉像傻一样。
如果您正在制作.json文本文件/流并从那里导入数据,那么在双引号之前只有一个反斜杠的主流回答:\"
是您正在寻找的那个。 / p>
但是,如果你像我一样,并且你想让w3schools.com“Tryit Editor”在JSON.parse(文本)的输出中有双引号,那么你正在寻找的那个是三反斜杠双引号\\\"
。这是因为您在HTML <script>
块中构建文本字符串,并且第一个双反斜杠将一个反斜杠插入到字符串变量中,然后以下反斜杠双引号将双引号插入到字符串中,以便生成脚本字符串包含标准答案中的\"
,JSON解析器将其解析为双引号。
<script>
var text="{";
text += '"quip":"\\\"If nobody is listening, then you\'re likely talking to the wrong audience.\\\""';
text += "}";
var obj=JSON.parse(text);
</script>
+1:因为它是一个JavaScript文本字符串,所以双反斜杠双引号\\"
也会起作用;因为双引号不需要在单个带引号的字符串中进行转义,例如'\"'
和'"'
会产生相同的JS字符串。
答案 3 :(得分:8)
请注意,这通常发生在内容已被&#34;双重编码&#34;时,意味着编码算法被意外调用了两次。
第一个电话会编码&#34; text2&#34;值:
FROM: Heute startet unsere Rundreise&#34;示例文字&#34;。 Jeden Tag wird ein neues Reiseziel angesteuert bis wir。
TO: Heute startet unsere Rundreise \&#34;示例文字\&#34;。 Jeden Tag wird ein neues Reiseziel angesteuert bis wir。
第二个编码然后再次转换它,转义已转义的字符:
FROM: Heute startet unsere Rundreise \&#34;示例文字\&#34;。 Jeden Tag wird ein neues Reiseziel angesteuert bis wir。
TO: Heute startet unsere Rundreise \\\&#34;示例文字\\\&#34;。 Jeden Tag wird ein neues Reiseziel angesteuert bis wir。
因此,如果您负责在此处实施服务器,请检查以确保没有两个步骤尝试对相同内容进行编码。
答案 4 :(得分:3)
如果你想在JSON中使用\\转义双引号来逃避它。
示例如果要创建以下javascript对象的json
+--------+------------+-------------+
| userid | billdate | paymentdate |
+--------+------------+-------------+
| user1 | 2017-06-01 | 2017-06-02 |
| user1 | 2017-05-01 | 2017-06-01 |
| user1 | 2017-05-01 | 2017-05-02 |
| user2 | 2017-06-01 | 2017-06-30 |
| user2 | 2017-05-01 | 2017-05-30 |
+--------+------------+-------------+
然后你必须按照以下方式写作
{time: '7 "o" clock'}
如果我们使用'{"time":"7 \\"o\\" clock"}'
JSON.parse()
结果将是
JSON.parse('{"time":"7 \\"o\\" clock"}')
答案 5 :(得分:1)
要转义导致JSON数据出现问题的反斜杠,我使用此函数。
//escape backslash to avoid errors
var escapeJSON = function(str) {
return str.replace(/\\/g,'\\');
};
答案 6 :(得分:0)
对于那些希望使用开发人员powershell的人。这是要添加到您的settings.json中的行:
"terminal.integrated.automationShell.windows": "C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe",
"terminal.integrated.shellArgs.windows": [
"-noe",
"-c",
" &{Import-Module 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\Common7\\Tools\\Microsoft.VisualStudio.DevShell.dll'; Enter-VsDevShell b7c50c8d} ",
],