잘 구성된 `JSON.stringify`
· 약 1분
JSON.stringify
는 이전에 입력에 고립된 서러게이트가 포함되어 있으면 잘못된 유니코드 문자열을 반환하도록 지정되었습니다:
JSON.stringify('\uD800');
// → '"�"'
“잘 구성된 JSON.stringify
” 제안은 JSON.stringify
의 동작을 변경하여 고립된 서러게이트에 대해 이스케이프 시퀀스를 출력하도록 하고, 결과가 유효한 유니코드(및 UTF-8로 표현 가능)가 되도록 만듭니다:
JSON.stringify('\uD800');
// → '"\\ud800"'
참고로, JSON.parse(stringified)
는 여전히 이전과 동일한 결과를 생성합니다.
이 기능은 JavaScript에서 오래 기다려왔던 작은 수정사항입니다. JavaScript 개발자로서 신경 써야 할 것이 한 가지 줄어든 셈입니다. JSON ⊂ ECMAScript와 결합하여 JSON-stringified 데이터를 JavaScript 프로그램의 리터럴로 안전하게 포함시킬 수 있게 하고, 생성된 코드를 어떤 유니코드 호환 인코딩(예: UTF-8)으로 디스크에 저장할 수 있게 합니다. 이는 메타프로그래밍 사용 사례에 매우 유용합니다.