반응형


자료 출처 : http://technol0gic.tistory.com/261



JSON

(제이슨, JavaScript Object Notation)은, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법이다.


- 출처 : 위키백과


DB에 배열 따위를 저장하고 싶을 때 JSON으로 배열을 인코딩 해줘서 스트링 데이터로 만들고 DB에 저장하면 간편하다. DB에는 php에서의 배열 변수같은 것을 저장할 수 없기에 보통 나는 JSON으로 인코딩 해 준다음 배열로 저장한다.


php에서는 JSON 형식으로 인코딩 하거나 디코딩 하는 함수를 기본적으로 제공해주는데,


json_encode 와 json_decode 함수이다.


source code:

<?
    $array = array("A""B""C");
    $result = json_encode($array);
    echo($result);
?>


result :

["A","B","C"]


source code:

<?
    $array['name'] = array("A""B""C");
    $result = json_encode($array);
    echo($result);
?>


result :

{"name":["A","B","C"]}


연관배열을 사용하면, 이런 결과를 볼 수 있다.


source code:

<?
    $string = '["A","B","C"]';
    $result = json_decode($string);
    print_r($result);
?>


result :

Array ( [0] => A [1] => B [2] => C )


print_r 은 배열을 시각적으로 보여주는 함수이다. JSON형태의 스트링 데이터를 변수에 넣어줘서, JSON 디코딩을 해줘서 반환된 배열을출력한 결과이다. 정상적으로 배열로 변환되었다.


그런데 가끔 배열로 반환이 안되고 stdClass 라는 하나의 오브젝트로 반환되는 경우가 있는데,


source code:

<?
    $string = '["A","B","C"]';
    $result = json_decode($string, 1);
    print_r($result);
?>


result :

Array ( [0] => A [1] => B [2] => C )


json_decode 에서 2번째 인자에 true 값을 넣어준다면, 정상적으로 배열 형태로 변환되어 반환된다.

반응형

+ Recent posts