>  기사  >  백엔드 개발  >  `json_encode`가 JSON 출력에 원치 않는 백슬래시를 추가하는 이유는 무엇입니까?

`json_encode`가 JSON 출력에 원치 않는 백슬래시를 추가하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-13 00:41:01884검색

Why does `json_encode` add unwanted backslashes to my JSON output?

JSON 수수께끼: json_encode의 백슬래시 이상 현상 해결

JSON 데이터 인코딩 영역에서 json_encode 함수는 오랫동안 신뢰할 수 있는 도구였습니다. 그러나 최근의 사건으로 인해 json_encode가 원치 않는 백슬래시를 추가하는 이유는 무엇입니까?

이 수수께끼를 자세히 알아보기 위해 제공된 코드를 검토해 보겠습니다.

print_r($result);
echo json_encode($result);

print_r 명령은 다음을 표시합니다. 예상대로 연관 배열. json_encode가 적용되면 배열이 유효한 것처럼 보이는 JSON으로 변환됩니다. 그러나 추가 검사를 통해 숨겨진 슬래시가 나타납니다.

{
    "logo_url":"http:\/\/mysite.com\/uploads\/gallery\/7f\/3b\/f65ab8165d_logo.jpeg",
    "img_id":"54",
    "feedback":{"message":"File uploaded","success":true}
}

왜 이러한 불필요한 백슬래시가 있습니까? 추가 디버깅을 통해 이야기의 반전이 드러납니다. 예외는 json_encode 자체에서 발생하는 것이 아니라 후속 parJSON 호출에서 발생합니다. data.toSource()를 사용하여 JavaScript 데이터를 검사하면 JSON과 호환되지 않는 문자열이 발견됩니다.

({response:"{\"logo_url\":\"http:\/\/storelocator.com\/wp-content\/uploads\/gallery\/7f\/3b\/71b9520cfc91a90afbdbbfc9d2b2239b_logo.jpeg\",\"img_id\":\"62\",\"feedback\":{\"message\":\"File uploaded\",\"success\":true}}", status:200})

해결책:

이 문제를 해결하는 열쇠는 다음과 같습니다. json_encode에 "JSON_UNESCAPED_SLASHES" 옵션을 지정할 때. PHP 버전 5.4에 도입된 이 옵션은 함수가 슬래시에 백슬래시를 추가하는 것을 효과적으로 방지합니다.

json_encode($array,JSON_UNESCAPED_SLASHES);

이러한 지식을 바탕으로 원치 않는 백슬래시의 미스터리가 해결되어 이스케이프 간섭 없이 원활한 JSON 인코딩이 가능해졌습니다. !

위 내용은 `json_encode`가 JSON 출력에 원치 않는 백슬래시를 추가하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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