>웹 프론트엔드 >JS 튜토리얼 >이스케이프된 작은따옴표가 있는 경우 jQuery.parseJSON에서 \'잘못된 JSON\' 오류가 발생하는 이유는 무엇입니까?

이스케이프된 작은따옴표가 있는 경우 jQuery.parseJSON에서 \'잘못된 JSON\' 오류가 발생하는 이유는 무엇입니까?

DDD
DDD원래의
2024-10-29 06:50:30739검색

Why Does jQuery.parseJSON Throw

jQuery.parseJSON에서 JSON의 이스케이프된 작은따옴표로 인해 "잘못된 JSON" 오류가 발생합니다

문제:
jQuery.post()를 사용하여 서버에서 JSON 개체를 검색할 때 값에 이스케이프된 작은따옴표(')가 포함되어 있으면 구문 분석이 실패합니다. 이는 JSON 문자열이 유효한 경우에도 발생합니다.

이유:
JSON 사양에 따르면 문자열 내에서는 작은따옴표가 아닌 이스케이프된 큰따옴표만 허용됩니다. 작은따옴표 문자는 JSON 표준에 따라 이스케이프할 필요가 없습니다.

업데이트:
"JavaScript: The Good Parts"에서 JSON에 대한 토론 중에 Douglas Crockford가 JSON의 창시자는 상호 운용성을 단순화하기 위해 이스케이프된 큰따옴표만 허용하기로 결정했다고 설명했습니다. 큰따옴표만 사용하면 문자열이 혼동되거나 실수로 종료될 가능성이 줄어듭니다.

의미:
즉, 작은따옴표 문자는 사용할 수 없습니다. JSON 문자열 내에서 실수로 문자열을 종료합니다. 따라서 공식적인 JSON 사양에서는 작은따옴표 문자를 이스케이프할 필요가 없습니다.

구현 고려 사항:
JSON 사양은 이스케이프된 작은따옴표를 허용하지 않지만 org와 같은 bazı 구현은 허용하지 않습니다. Java용 .json은 더 관대하며 사용을 허용합니다. 그러나 이는 표준이 아니며 jQuery에서 사용되는 구현을 포함하여 널리 사용되는 많은 구현은 공식 JSON 사양을 엄격하게 준수하고 작은따옴표로 묶인 문자열 및/또는 이스케이프된 작은따옴표가 포함된 JSON을 거부한다는 점에 유의해야 합니다.

jQuery.parseJSON 동작:
jQuery.parseJSON은 브라우저에서 제공하는 기본 JSON 파서 또는 json2.js와 같은 로드된 라이브러리를 사용합니다. 이러한 구현은 일반적으로 JSON 사양을 준수하므로 이스케이프된 작은따옴표를 허용하지 않으며 jQuery도 마찬가지입니다.

위 내용은 이스케이프된 작은따옴표가 있는 경우 jQuery.parseJSON에서 \'잘못된 JSON\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.