개발자포럼

개발관련 이슈 및 팁을 공유해보세요.

백엔드

백엔드 개발에 대한 주제포럼입니다.

#json_encode 함수 옵션

json_encode 함수 옵션은 PHP 5.3.3 이상에서 동작합니다.


공식메뉴얼 주소는 아래를 참고하시면 됩니다.

http://www.php.net/manual/en/function.json-encode.php


그 중 유용하게 쓸만한 옵션만 간단히 설명을 하자면 아래와 같습니다.


JSON_UNESCAPED_UNICODE

대부분의 경우 쓸 데 없는 유니코드문자열을 escape 를 하지 않습니다.

<?php
    echo json_encode("알쯔"); // 출력값 : "\uc54c\ucbd4"
    echo json_encode("알쯔",JSON_UNESCAPED_UNICODE); // 출력값 : "알쯔"
?>


JSON_FORCE_OBJECT

배열(Array)를 강제로 Object형태로 변환합니다.

<?php
    echo json_encode(array('A','B','C')); // 출력값 : ["A","B","C"]
    echo json_encode(array('A','B','C'),JSON_FORCE_OBJECT); // 출력값 : {"0":"A","1":"B","2":"C"}
?>


JSON_NUMERIC_CHECK

숫자로만 구성된 문자열을 INT형태로 자동으로 변환시켜 줍니다.

<?php
    echo json_encode(array('12345','B1234')); // 출력값 : ["12345","B1234"]
    echo json_encode(array('12345','B1234'),JSON_NUMERIC_CHECK); // 출력값 : [12345,"B1234"]
?>


JSON_HEX_TAG

따옴표나 태그기호(<,>) 등을 HEX로 인코딩합니다.

<?php
    echo json_encode("< > & `"); // 출력값 : "< > & `"
    echo json_encode("< > & `",JSON_HEX_TAG); // 출력값 : "\u003C \u003E & `"
?>



여러개의 옵션을 동시에 사용하려면 아래와 같이 입력하면 됩니다.

<?php
    $json = json_encode($obj, JSON_NUMERIC_CHECK | JSON_FORCE_OBJECT | JSON_UNESCAPED_UNICODE);
?>
PHP
알쯔
LV.17