PHP 처리 JSon 문자열 디 코딩 NULL 의 해결 방법
일반적으로 php 는 json 문자열 디 코딩 에 json 을 사용 합 니 다.decode()함수,첫 번 째 매개 변 수 는 문자열 을 전달 하고 두 번 째 매개 변 수 는 true 이면 array 를 되 돌려 줍 니 다.false 라면 object 로 돌아 갑 니 다.NULL 로 돌아 가면 오 류 를 설명 하고 json 을 출력 합 니 다.last_error(),얻 은 정수 치 는 오류 알림 에 대응 합 니 다.다음 그림 에서 보 듯 이:
json_last_error()에서 흔히 볼 수 있 는 것 은 정수 4 이 고 json 문자열 은 jsondecode 이전 에는 완전 하지 않 았 기 때문에 문법 이 잘못 되 었 습 니 다.
그러면 클 라 이언 트 가 제출 한 개별 문 자 는 json 의 형식 에 영향 을 주 고 JS 를 사용 하여 여과 할 수 있 으 며 일반적인 문 제 를 해결 할 수 있 습 니 다.주로 리 턴,빈 칸,html 라벨 을 걸 러 낼 수 있 습 니 다.
구현 코드 는 다음 과 같 습 니 다:
/*
*
*/
function htmlEncode(str) {
str = str.replace(/\s+/ig, '');
str = str.replace(/&/g, '');
str = str.replace(/</g, '');
str = str.replace(/>/g, '');
str = str.replace(/(?:t| |v|r)*n/g, '<br />');
str = str.replace(/t/g, ' ');
str = str.replace(/x22/g, '"');
str = str.replace(/x27/g, ''');
str = str.replace(/"/g, "");
return str;
}
이상 의 상황 은 json 문자열 데 이 터 를 서버 에 제출 해 야 하 며 클 라 이언 트 에서 만 걸 러 낼 수 있 습 니 다.기타 jsondecode($str)가 NULL 을 되 돌려 주 는 이유:
1.$str 는 UTF-8 인 코딩 만 가능
2.요 소 는 마지막 에 쉼표 가 있 으 면 안 됩 니 다(phop 의 array 와 다 릅 니 다)
3.원 소 는 작은 따옴표 를 사용 할 수 없습니다.
4.요소 값 중간 에 빈 칸 과 바 꿔 야 합 니 다.
만약 여러분 이 상술 한 상황 에 부 딪 혔 다 면 상기 방법 에 따라 처리 할 수 있 습 니 다.
PS:json 작업 에 대해 서 는 비교적 실 용적 인 json 온라인 도 구 를 추천 합 니 다.참고 하 시기 바 랍 니 다.
온라인 JSON 코드 검사,검사,미화,포맷 도구:
http://tools.jb51.net/code/json
JSON 온라인 포맷 도구:
http://tools.jb51.net/code/jsonformat
온라인 XML/JSON 상호 변환 도구:
http://tools.jb51.net/code/xmljson
json 코드 온라인 포맷/미화/압축/편집/변환 도구:
http://tools.jb51.net/code/jsoncodeformat
온라인 json 압축/전의 도구:
http://tools.jb51.net/code/json_yasuo_trans
C 언어 스타일/HTML/CSS/json 코드 포맷 미화 도구:
http://tools.jb51.net/code/ccode_html_css_json
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.