如何在JSON中转义双引号

我试图显示双引号,但它显示反斜杠之一:

"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\" 。 什么是正确的方法?

尝试这个:

 "maingame": { "day1": { "text1": "Tag 1", "text2": "Heute startet unsere Rundreise \" Example text\". Jeden Tag wird ein neues Reiseziel angesteuert bis wir.</strong> " } } 

(在引号前只有一个反斜杠( \ ))。

它显示反斜杠,因为你也逃避反斜杠。

除了双引号,如果你想在你的JSON引用string中包含一个,你还必须转义反斜杠。 但是,如果你打算在转义序列中使用反斜杠,显然你不应该逃避它。

什么时候和在哪里使用\\\"而如果你像我一样,你会感觉和我在发现这个主题后意识到自己在做什么时一样愚蠢。

如果你正在制作一个.json文本文件/stream,并从那里导入数据,那么在双引号之前只有一个反斜杠的主stream答案是你正在寻找的。

但是,如果你像我一样,你正在试图让w3schools.com“Tryit编辑器”在JSON.parse(文本)的输出中有一个双引号,那么你正在寻找的是三反斜杠双引号\\\" ,这是因为您在HTML <script>块中构build了文本string,而第一个双反斜杠将单个反斜杠插入到stringvariables中,接下来的反斜杠双引号将双引号插入该string以便生成的脚本string包含来自标准答案的\" ,JSONparsing器将会将其parsing为双引号。

 <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文本string,双反斜杠双引号\\"也可以工作;因为双引号不需要在单引号string内转义,例如'\"''"'导致相同的JSstring。

请注意,这通常发生在内容已被“双重编码”时,意味着编码algorithm被意外地调用了两次。

第一次调用将编码“text2”值:

FROM: Heute startet unsere Rundreise“示例文本”。 Jeden Tag wird ein neues Reiseziel angesteuert bis wir。

TO: heute startet unsere Rundreise \“Example text \”。 Jeden Tag wird ein neues Reiseziel angesteuert bis wir。

第二个编码然后再转换它,转义已经转义的字符:

FROM: Heute startet unsere Rundreise \“Example text \”。 Jeden Tag wird ein neues Reiseziel angesteuert bis wir。

TO: Heute startet unsere Rundreise \\\“Example text \\\”。 Jeden Tag wird ein neues Reiseziel angesteuert bis wir。

所以,如果你负责在这里实现服务器,请检查以确保没有两个步骤试图编码相同的内容。

为了避免导致JSON数据问题的反斜杠,我使用这个函数。

 //escape backslash to avoid errors var escapeJSON = function(str) { return str.replace(/\\/g,'\\'); }; 

如果你想逃避双引号JSON使用\\来逃避它。

例如,如果你想创build下面的JavaScript对象的JSON

 {time: '7 "o" clock'} 

那么你必须按照以下的方式写

 '{"time":"7 \\"o\\" clock"}' 

如果我们使用JSON.parse()parsing它,

 JSON.parse('{"time":"7 \\"o\\" clock"}') 

结果将是

 {time: "7 "o" clock"}