ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 배열값을 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

    댓글

Designed by Tistory.