[json] 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 텍스트 파일 / 스트림을 만들고 거기에서 데이터를 가져 오는 경우 큰 따옴표 앞에 하나의 백 슬래시의 기본 스트림 응답이 있습니다 \".

그러나 당신이 나와 같고 w3schools.com “Tryit Editor”가 JSON.parse (text)의 출력에 큰 따옴표를 갖도록하려고한다면, 당신이 찾고있는 것은 트리플입니다 백 슬래시 큰 따옴표 \\\". HTML <script>블록 내에 텍스트 문자열을 작성 하고 첫 번째 이중 백 슬래시는 단일 백 슬래시를 문자열 변수에 삽입 한 후 다음 백 슬래시 큰 따옴표는 큰 따옴표를 문자열에 삽입하여 결과 스크립트 문자열에 \"from을 포함시키기 때문 입니다. 표준 답변과 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 문자열의 결과.


답변

백 슬래시도 이스케이프 처리되므로 백 슬래시가 표시됩니다.

큰 따옴표 외에도 JSON 따옴표로 묶은 문자열에 백 슬래시를 포함하려면 백 슬래시를 이스케이프 처리해야합니다. 그러나 이스케이프 시퀀스에 백 슬래시를 사용하려는 경우에는 이스케이프를 피해야합니다.


답변

이는 콘텐츠가 “이중 인코딩”된 경우에 발생하며 인코딩 알고리즘이 실수로 두 번 호출되었음을 의미합니다.

첫 번째 호출은 “text2″값을 인코딩합니다.

FROM : Heute startet이 Rundreise “예제 ​​텍스트”를 원치 않습니다. 제이 덴 태그 (Jeden Tag)는 Reiseziel angesteuert bis wir.

TO : startet unesere Rundreise \ “Example text \”를 봅니다. 제이 덴 태그 (Jeden Tag)는 Reiseziel angesteuert bis wir.

그런 다음 두 번째 인코딩은 이미 이스케이프 된 문자를 이스케이프 처리하여 다시 변환합니다.

FROM : Runuteise가 “예제 텍스트 \”인 Heute startet. 제이 덴 태그 (Jeden Tag)는 Reiseziel angesteuert bis wir.

TO : startet unesere Rundreise \\\ “예제 텍스트 \\\”를 표시하십시오. 제이 덴 태그 (Jeden Tag)는 Reiseziel angesteuert bis wir.

따라서 여기에서 서버 구현을 담당하는 경우 동일한 컨텐츠를 인코딩하려는 두 단계가 없는지 확인하십시오.


답변

JSON에서 큰 따옴표를 이스케이프하려면 \\를 사용하여 이스케이프하십시오.

다음 자바 스크립트 객체의 json을 생성하려는 경우의 예

{time: '7 "o" clock'}

다음과 같이 작성해야합니다

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

우리가 그것을 사용하여 구문 분석하면 JSON.parse()

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

결과는

{time: "7 "o" clock"}


답변

JSON 데이터에 문제를 일으키는 백 슬래시를 이스케이프 처리하려면이 함수를 사용합니다.

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


답변

개발자 powershell을 사용하려는 사람들을 위해. 설정에 추가 할 줄은 다음과 같습니다.

"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} ",
    ],