-
배열값을 json 형식으로 출력하기 : json_encode()PHP 2016. 6. 27. 19:15
앱을 만들다보면 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