본문 바로가기

PHP

배열값을 json 형식으로 출력하기 : json_encode()

앱을 만들다보면 PHP로 서버를 구성하다보면 json형식으로 웹페이지에 출력시키고, 

Android에서 json을 파싱해서 값을 사용하는게 유용하게 사용된다.


PHP에서는 배열을 쉽게 json 형태로 출력해주는 함수로 json_encode()가 있다.

json_encode() 의 사용방법을 알아보자.



[code]

<?php

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

?>


위와 같은 배열이 있다. 이 배열을 그냥 echo var_dump()를 사용해서 찍으면


[code]

<?php

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo var_dump($arr);

?>


[result]

array(5) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(4) ["e"]=> int(5) }

이렇게 array형식으로 출력된다. 이렇게 되면 Android에서 파싱을 하기 어려워진다.


하지만 json_encode()를 사용해서 찍는다면


[code]

<?php

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);

?>


[result]

{"a":1,"b":2,"c":3,"d":4,"e":5}


이와 같이 key:value json 형식으로 되어 파싱하기 쉽게 출력된다.




*tip


[code]

<?php

$arr = array ('a'=>'안녕하세요','b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);

?>


위의 코드는 key a의 vlaue를 '안녕하세요'라고 한글로 준 경우이다.

[result]

{"a":"\uc548\ub155\ud558\uc138\uc694","b":2,"c":3,"d":4,"e":5}


결과를 보면 key a의 값이 유니코드로 표시된다. 이럴경우 파싱에 문제가 생기게된다.

json_encode()에는 뒤에 변수를 넣을수 있는데 그 변수로 여러가지가 있지만 그중에 JSON_UNESCAPED_UNICODE를 

아래와 같이 전달한다면 한글은 정상적으로 표시될것이다.


json_encode($arr, JSON_UNESCAPED_UNICODE);




참고 사이트

http://php.net/manual/kr/function.json-encode.php



'PHP' 카테고리의 다른 글

[Array] 배열의 함수  (0) 2016.10.21
[Array] 배열의 추가와 삭제  (0) 2016.10.21
[Array] 배열의 초기화, 선언  (0) 2016.10.18
배열값을 json 형식으로 출력하기 : json_encode()  (0) 2016.06.27

태그