PHP에서는 배열을 JSON으로 변환할 수 있는 함수가 기본적으로 내장되어 있습니다. 이것이 옵션에 따라 JSON 출력의 결과가 달라집니다.
JSON_UNESCAPED_UNICODE
유니코드 문자열을 대상으로 Escape를 해서 \uac00 이런 식으로 보이게 하지 않습니다.
json_encode("가나다"); // 값 : "\uac00\ub098\ub2e4"
json_encode("가나다",JSON_UNESCAPED_UNICODE); // 값 : "가나다"
JSON_FORCE_OBJECT
배열(Array)을 Object 형태로 변환합니다.
json_encode(array('A','B','C')); // 값 : ["A","B","C"]
json_encode(array('A','B','C'),JSON_FORCE_OBJECT); // 값 : {"0":"A","1":"B","2":"C"}
JSON_NUMERIC_CHECK
숫자로만 되어있는 문자열을 Int 형태로 변환시켜 줍니다.
json_encode(array('123','12A')); // 출력값 : ["123","12A"]
json_encode(array('123','12A'),JSON_NUMERIC_CHECK); // 출력값 : [123,"12A"]
JSON_HEX_TAG
< 와 >와 같은 태그 기호들이 \u003C 와 \u003E 이런 식으로 변환되게 됩니다.
json_encode("< >"); // 출력값 : "< >"
json_encode("< >",JSON_HEX_TAG); // 출력값 : "\u003C\u003E"
여러 개 옵션을 동시에 사용하려면 '|' 기호를 사용하여서 할 수 있습니다.
json_encode($array, JSON_NUMERIC_CHECK | JSON_UNESCAPED_UNICODE);