실례 상세 설명 PHP serialize 와 JSON 해석--전

JSON 은 JavaScript Programming Language,Standard ECMA-262 3rd Edition-December 1999 의 키 집합 을 기반 으로 합 니 다.JSON 은 언어 에 완전히 독립 된 텍스트 형식 을 사용 하지만 C 언어 가족 과 유사 한 습관(C,C++,C\#,Java,JavaScript,Perl,Python 등 포함)도 사용 했다.이러한 특성 들 은 JSON 을 이상 적 인 데이터 교환 언어 로 만 들 었 다.
JSON 은 두 가지 구조 로 구성 되 었 다.
'이름/값'쌍 의 집합(A collection of name/value pairs).서로 다른 언어 에 서 는 대상(object),기록(record),구조(struct),사전(dictionary),해시 표(hash table),키 목록(keyed list)또는 관련 배열(associative array)로 이해 된다.
값 의 서열 표(An ordered list of values)가 있 습 니 다.대부분의 언어 에서 배열(array)로 이해 된다.
PHP 의 serialize 는 변 수 를 직렬 화하 여 변수 유형 과 구 조 를 가 진 문자열 표현 식 을 되 돌려 주 는 것 입 니 다.말하자면 둘 다 하나의 문자열 로 데이터 구 조 를 나타 내 는 것 입 니 다.그 사이 에는 어떤 차이 가 있 습 니까?
먼저 JSON 부터 시작 해서 간단 한 실례 를 봅 시다.
예 1:

  
  
  
  
  1. var  test = { "Name" : "Peter" , "Age" :20};  
  2. document.write(test.Name +  ": "  + test.Age); 

결과 보이 기:
Peter: 20
변수 test 에서{"Name":"Peter","Age":20}은 두 개의 요소 가 있 는 대상(PHP 의 배열 처럼 느껴 짐)입 니 다.Name 은 Peter 이 고 Age 는 20 입 니 다.
물론 복잡 해 질 수도 있 지.
예 2:

  
  
  
  
  1. var  test  = {"User":{"Name":"Peter","Age":20},"Company":"FORD"};  
  2. document.write(test.User.Name + ": " + test.Company); 

결과 보이 기:
Peter:FORD 라 는 예 에는 User 요소 에 Name 과 Age 가 포함 되 어 있 습 니 다.
여러 user 를 구현 하려 면 대상 의'{}'과 구별 되 는 배열 을 사용 해 야 합 니 다.배열 은'[]'를 사용 합 니 다.
JSON 해석 예 3:

  
  
  
  
  1. var  test  = [  
  2.                  {"User":{"Name":"Peter","Age":20},"Company":"FORD"},  
  3.                  {"User":{"Name":"Li Ming","Age":20},"Company":"Benz"}  
  4.               ];  
  5. document.write(test[1].User.Name + ": " + test[1].Company);  
  6. // :document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"]); 

JSON 분석 결과:
Li Ming: Benz
이상 의 간단 한 인 스 턴 스 를 통 해 복잡 한 데 이 터 를 하나의 문자열 로 전달 할 수 있 고 Ajax 와 결합 하 는 것 이 매우 편리 합 니 다.다음은 PHP 의 serialize 함수 의 역할 을 살 펴 보 겠 습 니 다.
JSON 해석 예 4:

  
  
  
  
  1. $ arr  =  array  
  2.        (  
  3.           'Peter'= >  array  
  4.           (  
  5.             'Country'= > 'USA',  
  6.             'Age'= > 20  
  7.           ),  
  8.           'Li Ming'= >  array  
  9.           (  
  10.              'Country'= > 'CHINA',  
  11.              'Age'= > 21  
  12.           )  
  13.         );  
  14.  
  15. $ serialize serialize_var  = serialize($arr);  
  16. echo $serialize_var; 

JSON 분석 결과:

  
  
  
  
  1. a:2:{s:5:"Peter";a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}s:7:"Li Ming";a:2:{s:7:"Country";s:5:"CHINA";s:3:"Age";i:21;}} 

이 결 과 는 JSON 보다 복잡 해 보이 지만 사실은 간단 하 다.이것 은 바로 데이터 유형 과 구 조 를 설명 하 는 것 이다.a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}예:
a:2 이것 은 두 가지 요소 가 있 는 배열(array)임 을 나타 낸다.s:7:"Country";s:3:"USA";첫 번 째 요 소 를 위해 s:7 은 7 글자 의 문자열(string)이 고 뒤의 i:20 임 을 설명 합 니 다.정수(integer)20 이 라 고 맞 혀 야 합 니 다.
이 예 를 다시 한 번 보 자.
예 5:

  
  
  
  
  1. class  test  
  2. {  
  3.      var   $var  = 0;  
  4.      function  add(){  
  5.        echo   $var +10;  
  6.     }  
  7. }  
  8.  
  9. $unserialize_var  =  new  test;  
  10. $serialize_var  = serialize( $unserialize_var );  
  11. echo   $serialize_var ;  
  12. $unserialize_var  = null;  
  13. $unserialize_var  = unserialize( $serialize_var );  
  14. $unserialize_var ->add(); 

결과 보이 기:
O:4:"test":1:{s:3:"var";i:0;}
10
이 예 에서 알 수 있 듯 이 serialize 는 데이터 의 유형 과 구 조 를 모두 저장 하고 unserialize 후의 변 수 는 add()방법 을 사용 할 수 있 습 니 다.
그러면 PHP 는 JSON 과 연락 이 있 습 니까?PHP 에 익숙 한 친 구 는 PHP 5.2.0 이 JSON extension 을 기본 구성 요소 로 설정 했다 는 것 을 알 아야 합 니 다.즉,우 리 는 PHP 에서 JSON 작업 을 할 수 있 습 니 다.그 함 수 는 json 입 니 다.encode 와 jsondecode。
예 6:

  
  
  
  
  1. $arr  =  array  
  2.        (  
  3.            'Name' => 'Peter' ,  
  4.            'Age' =>20  
  5.        );  
  6.  
  7. $jsonencode  = json_encode( $arr );  
  8. echo   $jsonencode

결과 보이 기:
{"Name":"Peter","Age":20}
이 결 과 는 예 1 중 test 값 과 같 습 니 다.json 을 통 해encode 는 PHP 의 변 수 를 JSON 문자 표현 식 으로 변환 합 니 다.다시 한 번 제 이 슨decode 의 용법.
예 7:

  
  
  
  
  1. $var  =  '{"Name":"Peter","Age":20}' ;  
  2. $jsondecode  = json_decode( $var );  
  3. print_r( $jsondecode ); 

결과 보이 기:

  
  
  
  
  1. stdClass Object ( [Name] => Peter [Age] => 20 ) 

JSON 에서{"Name":"Peter","Age":20}은 대상 이지 만 PHP 에서 도 배열 로 바 꿀 수 있 습 니 다.jsondecode 에서 ASSOC 인 자 를 True 로 설정 하면 됩 니 다.예 8:

  
  
  
  
  1. $var  =  '{"Name":"Peter","Age":20}' ;  
  2. $jsondecode  = json_decode( $var ,true);  
  3. print_r( $jsondecode ); 

결과 보이 기:

  
  
  
  
  1. Array ( [Name] => Peter [Age] => 20 ) 

또 주의해 야 할 것 은 JSON 이 유 니 코드 형식 을 기반 으로 하기 때문에 중국어 작업 을 하려 면 UTF-8 형식 으로 바 꿔 야 한 다 는 점 이다.위의 예 를 통 해 JSON 과 PHP 에 대한 serialize,jsonencode 는 PHP,Javascript,JSON 과 Ajax 를 결합 하면 강력 한 데이터 상호작용 기능 을 완성 할 수 있다 는 것 을 초보 적 으로 알 게 되 었 다.
 
 
http://www.phpchina.com/html/75/n-34775.html

좋은 웹페이지 즐겨찾기