>백엔드 개발 >PHP 튜토리얼 >JSON으로 인코딩된 데이터에 백슬래시가 있는 이유는 무엇입니까?

JSON으로 인코딩된 데이터에 백슬래시가 있는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-11 07:19:03951검색

Why are there backslashes in my JSON encoded data?

JSON 인코딩의 백슬래시 이스케이프

json_encode를 사용하여 연관 배열을 JSON으로 변환할 때 일부 사용자는 인코딩된 데이터에 다음이 포함되는 문제가 발생합니다. 원하지 않는 백슬래시. 이 문제는 JSON 인코딩 프로세스와 후속 구문 분석 간의 잠재적인 불일치로 인해 발생합니다.

백슬래시의 근본 원인

PHP의 표준 JSON 인코딩은 백슬래시를 포함한 특수 문자를 이스케이프합니다. , 데이터 무결성을 보장합니다. 그러나 인코딩된 데이터가 .parseJSON과 같은 외부 JavaScript 함수에 의해 추가 처리되는 경우 의도하지 않은 이중 이스케이프가 발생할 수 있습니다.

해결책: JSON_UNESCAPED_SLASHES 옵션

해결 방법 이 문제에서는 JSON_UNESCAPED_SLASHES 옵션을 두 번째 매개변수로 명시적으로 지정할 수 있습니다. json_encode. 이 옵션은 PHP가 인코딩 중에 백슬래시를 이스케이프하지 않도록 지시하여 이중 이스케이프 문제를 제거합니다.

$result = [
    'logo_url' => 'http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg',
    'img_id' => 54,
    'feedback' => [
        'message' => 'File uploaded',
        'success' => 1
    ]
];

echo json_encode($result, JSON_UNESCAPED_SLASHES);

이 코드는 추가 백슬래시 없이 유효한 JSON을 출력합니다.

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

위 내용은 JSON으로 인코딩된 데이터에 백슬래시가 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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