요구 사항에 따라 다릅니다.
JSON은 다음 조건이 충족되지 않는 한 PHP 직렬화에 비해 더 빠릅니다-
- 깊게 중첩된 배열이 저장됩니다.
- 저장된 개체는 적절한 클래스로 직렬화 해제해야 합니다.
- json_decode를 지원하지 않는 이전 PHP 버전 간의 상호 작용입니다.
아래 코드 줄은 json_encode-
를 사용하여 PHP 배열을 저장하는 데 사용할 수 있습니다.json_encode($array, JSON_UNESCAPED_UNICODE)
JSON은 객체의 원래 클래스를 어디에도 저장하지 않지만 stdClass에 속하는 클래스 인스턴스로 복원할 수 있습니다.
직렬화 대신 json_encode를 사용하는 이유는 무엇입니까?
- JSON은 직렬화에 비해 이식성이 훨씬 뛰어납니다.
- __sleep() 및 __wakeup()의 기능은 JSON을 사용하여 활용할 수 없습니다.
- 기본적으로 공개 속성은 JSON으로 직렬화됩니다. (PHP 버전이>=5.4인 경우 JsonSerializable을 구현하여 동작을 변경할 수 있습니다.)
예시
<?php // Array is declared $value = array( "name"=>"name_me", "email"=>"myemail.com" ); // json_encode() function is used $json = json_encode($value); // Displaying output echo($json); ?>
출력
이것은 다음과 같은 출력을 생성합니다-
{"name":"name_me","email":"myemail.com"}