반응형
문자열화할 때마다 JSON.stringify가 큰따옴표를 이스케이프합니다.
웹 서비스에서 오브젝트로 검색된 JSON 오브젝트를 javascript에 저장하고 있습니다.많은 장소에서 이것은 문자열화되어(이 obj는 몇 가지 플러그인을 통과하여 스트레이징, 저장 및 검색), 여러 개의 슬래시를 추가합니다.어떻게 하면 피할 수 있을까요?
var obj = {"a":"b", "c":["1", "2", "3"]};
var s = "";
console.log(obj);
s = JSON.stringify(obj);
alert(s); // Proper String
s = JSON.stringify(s);
alert(s); // Extra slash added, Quotes are escaped
s = JSON.stringify(s);
alert(s); // Again quotes escaped or slash escaped but one more slash gets added
var obj2 = JSON.parse(s);
console.log(obj2); // Still a String with one less slash, not a JSON object !
따라서 이 여러 문자열을 구문 분석할 때 다시 문자열로 끝납니다.그리고 물체처럼 접근하려고 하면 충돌합니다.
슬래시를 제거하려고 했는데replace(/\\/g,"")
마지막으로 이렇게 하겠습니다.""{"a":"b","c":["1","2","3"]}""
무슨 일이 일어날 줄 알았어?
JSON.stringify
는 이미 JSON으로 변환된 데이터로 호출된 경우 "ID" 함수와 같이 동작하지 않습니다.따옴표, 백슬래시 등을 피할 수 있도록 설계되어 있습니다.
전화하셔야 합니다.JSON.parse()
당신이 부른 횟수만큼 정확히JSON.stringify()
당신이 넣은 것과 같은 물건을 돌려받을 수 있습니다.
해라
JSON.stringify(s).replace(/\\"/g, '"')
JSON으로 변환하고 싶은 데이터를 한 번만 호출하면 이를 방지할 수 있습니다.
이것을 시험해 보세요.
s = {"a":"b", "c":["1", "2", "3"]}
JSON.stringify(JSON.stringify(s))
로서 출력합니다.
'"{\"a\":\"b\",\"c\":[\"1\",\"2\",\"3\"]}"'
언급URL : https://stackoverflow.com/questions/16507858/json-stringify-escapes-double-quotes-every-time-when-stringified
반응형
'programing' 카테고리의 다른 글
Spring Boot Application 이름에 프로그래밍 방식으로 액세스하는 방법 (0) | 2023.03.27 |
---|---|
리소스에 대한 각도 후행 슬래시 (0) | 2023.03.27 |
사용자 정의 워드프레스 테이블의 행을 업데이트하는 방법 (0) | 2023.03.27 |
Spring Boot에서 로컬 서버 호스트와 포트를 얻는 방법 (0) | 2023.03.27 |
카테고리 slug로 쿼리하는 방법 (0) | 2023.03.27 |