3.11. JSON 다루기

php 에서 JSON 데이터 형식을 다루는 방법을 알아본다.

<?php
$data = array(
    'key1' => `value1`,
    'key2' => 2,
    'key3' => array(
        'name' => 'yse',
        'age' => 105
    )
);

$json_data = json_encode($data);
$decode_object = json_decode($json_data);
$decode_array = json_decode($json_data, true);

var_dump($data);
echo "<br /><br />";
var_dump($json_data);
echo "<br /><br />";
var_dump($decode_object);
echo "<br /><br />";
var_dump($decode_array);
echo "<br /><br />";

위 코드를 json.php 파일에 저장하고 브라우저에서 결과를 확인한다.

array(3) { ["key1"]=> NULL ["key2"]=> int(2) ["key3"]=> array(2) { ["name"]=> string(3) "yse" ["age"]=> int(105) } } 

string(54) "{"key1":null,"key2":2,"key3":{"name":"yse","age":105}}" 

object(stdClass)#1 (3) { ["key1"]=> NULL ["key2"]=> int(2) ["key3"]=> object(stdClass)#2 (2) { ["name"]=> string(3) "yse" ["age"]=> int(105) } } 

array(3) { ["key1"]=> NULL ["key2"]=> int(2) ["key3"]=> array(2) { ["name"]=> string(3) "yse" ["age"]=> int(105) } } 


JSON 은 JavaScript Object Notation 의 약자로 자바스크립트 타입 형식을 말한다. 주로 브라우저와 ajax 통신을 하거나 REST 방식으로 다른 서버와 연동할 때 데이터 형식으로 사용된다.


json_encode 함수는 PHP 데이터 타입을 JSON 문자열로 바꾼다.

$json_data = json_encode($data);
string(54) "{"key1":null,"key2":2,"key3":{"name":"yse","age":105}}"

json_decode 함수는 JSON 문자열을 PHP 의 객체 형식으로 바꾼다.

json_decode($json_data)
Copyobject(stdClass)#1 (3) { ["key1"]=> NULL ["key2"]=> int(2) ["key3"]=> object(stdClass)#2 (2) { ["name"]=> string(3) "yse" ["age"]=> int(105) } } 

json_decode 함수에서 2번째 파라미터에 true 를 전달하면 PHP의 객체 대신 배열 형식으로 바꾼다.

json_decode($json_data, true)
array(3) { ["key1"]=> NULL ["key2"]=> int(2) ["key3"]=> array(2) { ["name"]=> string(3) "yse" ["age"]=> int(105) } }