웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > etc

PHP에서 JSON으로 변환하여 출력 후 AJAX로 불러올때 parse 에러나는 경우

Last Modified : 2017-03-27 / Created : 2017-03-22
4,458
View Count
이 문제는 웹페이지에서 비동기식 AJAX를 사용하여 호출하기 위한 경우 발생합니다. JSON 타입의 포맷으로 PHP 문서를 만들어 API 형태로 불러오는데 파싱 에러가 발생한다면 아래의 문제일 가능성이 높습니다.

- 따옴표에 따른 문법 오류(홀따옴표, 쌍따옴표의 차이)
- 따옴표 앞에 escape 문자가 없는 경우
- nl2br을 사용하지 않았거나 사용하였음에도 변환되지 않은 경우
- JSON 문자에 띄어쓰기 코드 r n 등이 포함된 경우

위와 같은 이슈를 해결하기 위하여 대부분의 방법들을 사용해 보았으나 예외 케이스가 가끔씩 나타나는 현상이 발견되어 아래의 방법으로 최종 해결하였습니다.


! php의 json_encode() 함수를 사용하여 변환하기
이 방법을 사용하면 텍스트를 감싸고 있는 따옴표를 제거한 후 함수 호출을 해야합니다. 예를들어
<?php
echo "'test' : '".json_encode('$str')."', ";

// 아래처럼 json_encode() 감싸는 따옴표 제거
echo "'test' : ".json_encode('$str'). ", ";
?>
이 방법을 사용하면 인코딩이 이루어지는데 AJAX에서 인코딩된 소스를 읽으면서 자동으로 디코딩됩니다.


 

Previous

자바스크립트 정규표현식 방법 및 정보

Previous

CK Editor 리사이즈 및 사이즈 조절 방법