2014-04-21 3 views
2

이스케이프 문자열이 포함 된 문자열을 JSON으로 직렬화하려고합니다. 나는 JSON.stringify()이 정확하게 그 문자열을 다시 이스케이프하고 JSON.parse을 허용 할 것이라고 상상했을 것입니다. 예를 들면 다음과 같습니다.브라우저 JSON 대 노드 JSON

JSON.parse(JSON.stringify("\\")) 

노드 출력은 "\"입니다. 브라우저의 출력은 "\"입니다 - 브라우저 (내 경우에는 크롬)가 이중 백 슬래시 \\\\\\으로 올바르게 변환하지 않는 것 같습니다.

왜 그럴까요?

답변

2

코드를 작성할 때 "\\" (역 슬래시 자체는 이스케이프로 사용되기 때문에)을 써야합니다. 문자열에는 백 슬래시가 하나뿐입니다 ("\\".length1).

하지만 콘솔이나 브라우저에 표시되면 "\"으로 표시됩니다.

+0

예, 콘솔이 디스플레이를 위해 먹는 것처럼 보입니다. 나중에 JSON.stringify ("\\"). length = 4를 시도하여 실제로 예상 한 것과 일치하는지 확인합니다. – badunk