[php]json_encode 사용에 관하여..

안녕하세요. 개발자 드리머즈입니다.


iOS에서 SwiftyJSON을 사용하여 php서버로부터 오는 JSON을 처리할 때는 문제를 못느꼈었는데,

Android에서 php서버로부터 오는 JSON을 처리하려고 하니.. 문제점들이 보이네요.


예를 들어 문제가 발생한 경우 php서버에서 아래 코드가 실행됩니다.

header('Content-Type: application/json; charset=utf8');
$json = json_encode('-99', JSON_PRETTY_PRINT+JSON_UNESCAPED_UNICODE);
echo $json; 


그래서 client(app)에서는 아래와 같은 결과를 받습니다.

"-99" 


iOS의 SwiftyJSON은 위의 결과를 문제 없이 parsing합니다.

하지만 Android에서는 문제가 됩니다.

그리고 그냥 보기에도.. JSON 구조같아 보이지는 않네요.

중괄호도 없고.. 대괄호도 없으니까요.


그래서 php서버의 코드를 아래와 같이 수정해서 진행하려고 합니다.

header('Content-Type: application/json; charset=utf8');
$json = json_encode(array('-99'), JSON_PRETTY_PRINT+JSON_UNESCAPED_UNICODE);
echo $json; 


이렇게 단순한 값이라도 배열에 넣어서 json_encode를 실행시키면 아래의 결과를 얻습니다.

[
    "-99"
]

이렇게하니
Android에서 JSONArray로 손쉽게 파싱할 수 있네요.


작성자

Posted by 드리머즈

관련 글

댓글 영역