실례 상세 설명 PHP serialize 와 JSON 해석--전
12897 단어 JavaScriptjsonPHPuser언어.Dictionary
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:
- var test = { "Name" : "Peter" , "Age" :20};
- document.write(test.Name + ": " + test.Age);
결과 보이 기:
Peter: 20
변수 test 에서{"Name":"Peter","Age":20}은 두 개의 요소 가 있 는 대상(PHP 의 배열 처럼 느껴 짐)입 니 다.Name 은 Peter 이 고 Age 는 20 입 니 다.
물론 복잡 해 질 수도 있 지.
예 2:
- var test = {"User":{"Name":"Peter","Age":20},"Company":"FORD"};
- document.write(test.User.Name + ": " + test.Company);
결과 보이 기:
Peter:FORD 라 는 예 에는 User 요소 에 Name 과 Age 가 포함 되 어 있 습 니 다.
여러 user 를 구현 하려 면 대상 의'{}'과 구별 되 는 배열 을 사용 해 야 합 니 다.배열 은'[]'를 사용 합 니 다.
JSON 해석 예 3:
- var test = [
- {"User":{"Name":"Peter","Age":20},"Company":"FORD"},
- {"User":{"Name":"Li Ming","Age":20},"Company":"Benz"}
- ];
- document.write(test[1].User.Name + ": " + test[1].Company);
- // :document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"]);
JSON 분석 결과:
Li Ming: Benz
이상 의 간단 한 인 스 턴 스 를 통 해 복잡 한 데 이 터 를 하나의 문자열 로 전달 할 수 있 고 Ajax 와 결합 하 는 것 이 매우 편리 합 니 다.다음은 PHP 의 serialize 함수 의 역할 을 살 펴 보 겠 습 니 다.
JSON 해석 예 4:
- $ arr = array
- (
- 'Peter'= > array
- (
- 'Country'= > 'USA',
- 'Age'= > 20
- ),
- 'Li Ming'= > array
- (
- 'Country'= > 'CHINA',
- 'Age'= > 21
- )
- );
-
- $ serialize serialize_var = serialize($arr);
- echo $serialize_var;
JSON 분석 결과:
- 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:
- class test
- {
- var $var = 0;
- function add(){
- echo $var +10;
- }
- }
-
- $unserialize_var = new test;
- $serialize_var = serialize( $unserialize_var );
- echo $serialize_var ;
- $unserialize_var = null;
- $unserialize_var = unserialize( $serialize_var );
- $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:
- $arr = array
- (
- 'Name' => 'Peter' ,
- 'Age' =>20
- );
-
- $jsonencode = json_encode( $arr );
- echo $jsonencode ;
결과 보이 기:
{"Name":"Peter","Age":20}
이 결 과 는 예 1 중 test 값 과 같 습 니 다.json 을 통 해encode 는 PHP 의 변 수 를 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}은 대상 이지 만 PHP 에서 도 배열 로 바 꿀 수 있 습 니 다.jsondecode 에서 ASSOC 인 자 를 True 로 설정 하면 됩 니 다.예 8:
- $var = '{"Name":"Peter","Age":20}' ;
- $jsondecode = json_decode( $var ,true);
- print_r( $jsondecode );
결과 보이 기:
- 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.