>  기사  >  웹 프론트엔드  >  json 형식 오류는 무엇을 의미합니까?

json 형식 오류는 무엇을 의미합니까?

(*-*)浩
(*-*)浩원래의
2019-06-01 13:53:2713366검색

형식 오류

json 형식 오류는 무엇을 의미합니까?

json은 utf-8로 인코딩된 문자만 허용하므로 json_encode()의 매개변수는 utf-8로 인코딩되어야 합니다. 그렇지 않으면 빈 문자나 null이 발생합니다. 중국어가 GB2312 인코딩을 사용하거나 외국어가 ISO-8859-1 인코딩을 사용하는 경우 이 점에 특별한 주의를 기울여야 합니다.

$bad_json = "{ 'bar': 'baz' }";
$bad_json = '{ bar: "baz" }';
$bad_json = '{ "bar": "baz", }';

이 세 문자열에 대해 json_decode()를 실행하면 null이 반환되고 오류가 보고됩니다.

첫 번째 오류는 json 구분 기호가 작은따옴표가 아닌 큰따옴표만 허용한다는 것입니다. 두 번째 실수는 json 이름-값 쌍의 "이름"(콜론 왼쪽 부분)이 어떤 경우에도 큰따옴표를 사용해야 한다는 것입니다. 세 번째 오류는 마지막 값 뒤에 후행 쉼표를 추가할 수 없다는 것입니다.

또한 json은 객체와 배열을 나타내는 데에만 사용할 수 있습니다. json_decode()가 문자열이나 값에 사용되면 null이 반환됩니다.

형식은 정확하지만 오류가 보고됩니다

첫 번째 유형, 문자 인코딩 문제

json은 utf-8로 인코딩된 문자만 허용하므로 json_encode()의 매개변수는 utf-8로 인코딩되어야 합니다. 빈 문자 또는 null을 얻습니다. 중국어가 GB2312 인코딩을 사용하거나 외국어가 ISO-8859-1 인코딩을 사용하는 경우 이 점에 특별한 주의를 기울여야 합니다.

두 번째 유형의 BOM 문제

BOM 헤더는 UTF-8 서명이라고도 합니다. 실제로 UTF-8의 BOM은 UFT-8을 지원하기 위해 추가된 BOM 및 BOM 서명입니다. 16 및 UTF-32의 의미는 편집자의 식별을 용이하게 하기 위해 현재 파일이 어떤 인코딩을 사용하는지 알려주는 것입니다. 그러나 BOM은 편집기에 표시되지 않지만 추가 빈 줄처럼 출력됩니다. 일반적인 PHP 코드 등에는 메모장을 사용합니다. 소프트웨어로 편집하고 저장한 후 UTF-8로 인코딩된 파일을 저장할 때 보이지 않는 문자 3개(0xEF 0xBB 0xBF 또는 BOM)가 파일 시작 부분에 삽입됩니다. 메모장과 같은 편집자가 파일이 UTF-8로 인코딩되었는지 여부를 식별하는 데 사용되는 숨겨진 문자 문자열입니다. (데이터를 반환할 때 BOM 헤더가 자동으로 추가되는 이유는 확실하지 않습니다.)

아아아아

위 내용은 json 형식 오류는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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