>php教程 >PHP开发 >PHP 직렬화 및 JSON 구문 분석의 자세한 예

PHP 직렬화 및 JSON 구문 분석의 자세한 예

黄舟
黄舟원래의
2016-12-14 10:15:541187검색

JSON은 표준 ECMA-262 3판(1999년 12월)의 하위 집합인 JavaScript 프로그래밍 언어를 기반으로 합니다. JSON은 완전히 언어 독립적인 텍스트 형식을 사용하지만 C 언어 계열(C, C++, C#, Java, JavaScript, Perl, Python 등 포함)과 유사한 규칙도 사용합니다. 이러한 속성은 JSON을 이상적인 데이터 교환 언어로 만듭니다.

JSON은

이름/값 쌍의 컬렉션이라는 두 가지 구조로 구성됩니다. 다른 언어에서는 객체, 레코드, 구조체, 사전, 해시 테이블, 키 목록 또는 연관 배열로 이해됩니다.

순서가 지정된 값 목록입니다. 대부분의 언어에서는 배열로 이해됩니다.

PHP의 직렬화는 변수를 직렬화하여 변수 유형과 구조를 갖는 문자열 표현식을 반환하는 것입니다.
말하자면 둘 다 문자열 형식으로 데이터 구조를 구현하므로 차이점은 무엇입니까? .

JSON부터 시작하여 간단한 예를 살펴보겠습니다.

예 1:

var test = {"Name":"Peter","Age":20}; document.write(test.Name + ": " + test.Age) ; 결과 표시:

Peter: 20

test 변수의 {"Name":"Peter","Age":20}는 2개의 요소가 있는 객체입니다(PHP 배열처럼 느껴집니다). ):
이름은 피터, 나이는 20입니다.

물론 더 복잡해질 수도 있습니다.

예 2:

var test = {"User":{"Name":"Peter","Age":20},"Company":"FORD"}; write(test.User.Name + ": " + test.Company); 표시 결과:

Peter: FORD 이 예에서 User 요소에는 Name 및 Age가 포함됩니다.

여러 사용자를 반영하려면 배열을 사용해야 합니다. 객체의 "{}"와는 다르게 배열은 "[]"를 사용합니다.

JSON 구문 분석 예제 3:

var 테스트 = [                                                                                             ,                {"사용자":{"이름":"리 밍","나이":20},"회사":"벤츠 "}                                                                                                          ~     test[1].Company); //또는 다음을 사용합니다. document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"]); JSON 파싱 표시 결과:

Li Ming: Benz

위의 간단한 예를 통해 일부 복잡한 데이터를 문자열로 전송할 수 있는데, Ajax와 결합하면 정말 훨씬 편리합니다.
PHP의 직렬화 기능의 역할을 살펴보겠습니다.

JSON 구문 분석 예 4:

$arr = array ( 20 ), ' Li Ming'=> array ( ) 'Country'=>'CHINA', 'Age'=> ;21 ); $serializeserialize_var = serialize($arr); echo $serialize_var; JSON 구문 분석 결과:

a:2:{s:5:"Peter";a:2: :"국가";s:3:"미국";s:3:"나이";i:20;}s :7:"리 밍";a:2:{s:7:"국가";s: 5:"CHINA";s:3:"Age";i:21;}} 이 결과는 JSON보다 더 좋아 보입니다. 약간 복잡하지만 실제로는 일부 데이터 유형과 구조를 설명하는 것뿐입니다.
a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}를 예로 들어보세요.

a: 2 이는 두 개의 요소가 있는 배열임을 나타냅니다. s:7:"Country";s:3:"USA"는 이것이 7개의 문자로 구성된 문자열임을 나타냅니다. :20; 또한 정수(정수) 20으로 추측되어야 합니다.

이 예를 다시 살펴보겠습니다.

예 5:

클래스 테스트 { var $var = 0; function add(){ echo $var+10; } } $unserialize_var = serialize($unserialize_var); unserialize_var = unserialize($serialize_var); $unserialize_var->add(); 결과 표시:

O:4:"test":1:{s:3:"var";i:0;}

10

이 예에서 볼 수 있듯이 직렬화는 데이터의 유형과 구조를 모두 저장합니다.
직렬화 해제 후에도 변수는 add() 메서드를 사용할 수 있습니다.

그렇다면 PHP와 JSON 사이에 어떤 연관성이 있을까요? PHP에 익숙한 친구들은 PHP5.2.0이 JSON 확장을 기본 구성 요소로 설정했다는 사실을 알아야 합니다. 즉, PHP에서 JSON 작업을 수행할 수 있다는 뜻입니다. 함수는 json_encode 및 json_decode입니다.

예 6:

$arr = array ( '이름'=>'피터', '나이'=>20 ) $jsonencode = json_encode($arr); jsonencode;
표시 결과:

{"Name":"Peter","Age":20}

이 결과는 예제 1의 테스트 값과 동일합니다. json_encode를 사용하세요. PHP의 변수를 표현식의 JSON 문자로 변환합니다.
json_decode의 사용법을 살펴보겠습니다.

예 7:

$var = '{"Name":"Peter","Age":20}'; $jsondecode = json_decode($var) print_r($jsondecode) ; 결과 표시:

stdClass Object ( [Name] => Peter [Age] => 20 ) 이는 실제로 JSON에서 {"Name":"Peter","Age":20 } 은 객체이지만 json_decode에서 ASSOC 매개변수를 True로 설정하여 PHP에서 배열로 변환할 수도 있습니다.
예 8:

$var = '{"Name":"Peter","Age":20}' $jsondecode = json_decode($var,true); 표시 결과:

Array ( [이름] => Peter [Age] => 20 ) 또한 JSON은 유니코드 형식을 기반으로 하므로 중국어 연산을 수행하려면 UTF-8 형식으로 변환됩니다. 위의 예를 통해 모든 사람이 JSON과 PHP의 직렬화 및 json_encode에 대한 사전 이해를 갖고 있다고 믿습니다. PHP, Javascript, JSON 및 Ajax를 결합하면 강력한 데이터 상호 작용 기능을 완성할 수 있습니다.

읽어 주셔서 감사합니다. 내용은 PHP 중국어 웹사이트(www.php.cn)에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.