PHP의 직렬화는 변수를 직렬화하고 변수 유형과 구조가 포함된 문자열 표현식을 반환하는 반면, JSON은 인터페이스(AJAX, REST 등)를 통한 데이터 교환에 더 가볍고 친숙한 형식입니다. 실제로 둘 다 문자열 형식의 데이터 구조를 구현합니다. 그렇다면 그들 사이의 차이점은 무엇입니까?
직렬화
일부 오래된 웹 시스템에서는 데이터베이스나 텍스트 파일에 특별한 의미가 저장된 것처럼 보이는 문자열 텍스트 콘텐츠의 큰 문자열을 볼 수 있습니다. 자세히 살펴보면 데이터 유형, 구조 등의 정보가 있지만 수동으로 읽기가 쉽지 않다는 것을 알 수 있습니다. 이는 PHP 프로그램에서만 읽기에 적합합니다. PHP의 직렬화는 배열을 직렬화하고 저장합니다. 다음과 같은 배열이 있다고 가정해 보겠습니다.
$arr = array( "0" => array( "gameName" => "德乙", "homeName" => "比勒费尔德", "guestName" => "不伦瑞克", "endTime" => "2015-08-21" ), "1" => array( "gameName" => "英超", "homeName" => "水晶宫", "guestName" => "阿斯顿维拉", "endTime" => "2015-08-22" ) );
이 배열의 내용을 다른 곳에서 읽을 수 있도록 데이터베이스나 텍스트 파일에 저장하려고 합니다.
$serialize = serialize($arr); echo $serialize;
PHP의 직렬화를 사용하여 배열을 직렬화하고 다음 결과를 출력합니다.
a:2:{i:0;a:4:{s:8:"gameName";s:6:"德乙";s:8:"homeName";s:15:"比勒费尔德";s:9:"guestName";s:12:"不伦瑞克";s:7:"endTime";s:10:"2015-08-21";}i:1;a:4:{s:8:"gameName";s:6:"英超";s:8:"homeName";s:9:"水晶宫";s:9:"guestName";s:15:"阿斯顿维拉";s:7:"endTime";s:10:"2015-08-22";}}
위 출력 결과는 복잡해 보이지만 실제로는 일부 데이터 유형과 구조를 설명하는 매우 간단합니다.
a:2는 두 개의 요소가 있는 배열임을 나타냅니다.
i:0은 시퀀스 인덱스를 나타냅니다.
a:4는 4개의 필드가 있음을 의미합니다
s:8:"gameName"은 이것이 8자리 문자열임을 나타냅니다.
실제 개발에서는 직렬화된 데이터만 저장하고 저장 형식과 필드 의미는 신경 쓰지 않습니다. 직렬화된 데이터를 배열로 복원하려면 unserialize() 함수를 사용하십시오.
print_r(unserialize($serialize));
위 코드는 배열을 인쇄할 수 있습니다.
JSON 데이터 파싱
우리는 PHP가 json_encode() 및 json_decode() 함수를 사용하여 JSON을 작동할 수 있다는 것을 알고 있습니다. json_encode()는 배열을 json 형식의 텍스트 데이터로 변환하여 저장 및 읽기에 편리하며, json_decode()는 json 데이터를 직접 배열로 변환하여 쉽게 호출할 수 있습니다.
$jsonencode = json_encode($arr); echo $jsonencode;
출력:
[{"gameName":"\u5fb7\u4e59","homeName":"\u6bd4\u52d2\u8d39\u5c14\u5fb7","guestName":"\u4e0d\u4f26\u745e\u514b","endTime":"2015-08-21"},{"gameName":"\u82f1\u8d85","homeName":"\u6c34\u6676\u5bab","guestName":"\u963f\u65af\u987f\u7ef4\u62c9","endTime":"2015-08-22"}]
분명히 JSON을 사용한 후에는 데이터 공간이 직렬화보다 적습니다. 출력 결과의 중국어 문자열은 자세히 보면 키 값과 일치하므로 수동 식별에 편리합니다. JSON 형식의 데이터는 다른 언어에서도 읽기 쉽고 인식되기 때문에 XML을 대체한다고 말하는 사람들도 있습니다. JSON 형식의 데이터는 WEB 프런트 엔드 JS와의 비동기 상호 작용 프로세스를 완료할 수 있습니다. json을 배열로 복원하려면 json_decode() 함수를 사용할 수 있습니다.
print_r(json_decode($jsonencode,true))
JSON 적용에 관심이 있는 학생은 이 사이트의 PHP에서 JSON 적용
기사를 참조할 수 있습니다.
요약
PHP의 직렬화는 배열을 직렬화해 저장이 용이하며, JSON 형식의 데이터는 저장하기 쉬울 뿐만 아니라 자바스크립트 등 다른 언어로도 읽을 수 있다. 미묘한 성능 차이가 있을 수 있으며, 프론트엔드와 백엔드 상호작용이 많은 경우에는 JSON을 사용하는 것이 좋습니다. PHP, Javascript, JSON, Ajax를 결합하면 강력한 데이터 상호작용 기능을 완성할 수 있습니다.
여기까지 PHP의 직렬화 데이터와 JSON 형식의 데이터에 대한 자세한 분석입니다.