1.json_encode()
주로 배열과 객체를 json 형식으로 변환하는 데 사용되는 함수입니다. 배열 변환의 예를 살펴보겠습니다.
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr);결과는
{"a":1,"b":2,"c":3,"d":4,"입니다. e" :5}
객체 변환의 또 다른 예를 살펴보세요.$obj->body = 'another post'; $obj->id = 21; $obj->approved = true; $obj->favorite_count = 1; $obj->status = NULL; echo json_encode($obj); 结果为 { "body":"another post", "id":21, "approved":true, "favorite_count":1, "status":null }
json은 utf-8로 인코딩된 문자만 허용하므로 json_encode()의 매개 변수는 utf여야 합니다. - 8 인코딩, 그렇지 않으면 널 문자 또는 널을 얻게 됩니다. 중국어가 GB2312 인코딩을 사용하거나 외국어가 ISO-8859-1 인코딩을 사용하는 경우 이 점에 특별한 주의를 기울여야 합니다.
2. 인덱스 배열과 연관 배열
PHP는 두 가지 유형의 배열을 지원합니다. 하나는 "값"(값)만 저장하는 인덱스 배열이고, 다른 하나는 저장하는 인덱스 배열입니다. " 이름/값 쌍의 연관 배열입니다.
javascript는 연관 배열을 지원하지 않기 때문에 json_encode()는 인덱스 배열만 배열 형식으로 변환하고 연관 배열은 객체 형식으로 변환합니다.
예를 들어, 이제 인덱스 배열이 있습니다.
$arr = Array('one', 'two', 'three'); echo json_encode($arr);
결과는 다음과 같습니다.
["one","two"," three"]
연관 배열로 변경하면:$arr = Array('1'=>'one', '2'=>'two', '3'=>'three'); echo json_encode($arr);
결과가 변경됩니다:
{"1":"one","2":"two" ,"3 ":"3"}
데이터 형식이 "[]"(배열)에서 "{}"(객체)로 변경되었습니다.
"인덱스 배열"을 "객체"에 강제로 적용해야 하는 경우
json_encode( (object)$arr );
또는
json_encode ( $arr, JSON_FORCE_OBJECT );
과 같이 작성할 수 있습니다.
3. 클래스 변환
다음은 PHP 클래스입니다.
class Foo { const ERROR_CODE = '404'; public $public_ex = 'this is public'; private $private_ex = 'this is private!'; protected $protected_ex = 'this should be protected'; public function getErrorCode() { return self::ERROR_CODE; } }
이제 이 클래스의 인스턴스에서 json 변환을 수행합니다.
$foo = new Foo; $foo_json = json_encode($foo); echo $foo_json;
출력된 결과는
{"public_ex":"this is public"}
공용변수(public) 외에 다른 것(상수)을 볼 수 있습니다. , 개인 변수, 메소드 등)이 손실됩니다.
4.json_decode()
이 함수는 json 텍스트를 해당 PHP 데이터 구조로 변환하는 데 사용됩니다. 예는 다음과 같습니다.
$json = '{"foo": 12345}'; $obj = json_decode($json); print $obj->{'foo'}; // 12345일반적으로 json_decode()는 항상 배열이 아닌 PHP 객체를 반환합니다. 예:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json));결과는 PHP 개체를 생성하는 것입니다.
object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }
PHP 연관 배열을 강제로 생성하려면 json_decode()에 true 매개변수를 추가해야 합니다.
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json,true));
결과는 연관 배열입니다.
array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }5. json_decode()의 일반적인 오류
json을 작성하는 다음 세 가지 방법이 모두 잘못된 위치를 확인할 수 있습니다. is?
$bad_json = "{ 'bar': 'baz' }"; $bad_json = '{ bar: "baz" }'; $bad_json = '{ "bar": "baz", }';
이 세 문자열에 대해 json_decode()를 실행하면 null이 반환되고 오류가 보고됩니다.
첫 번째 오류는 json 구분 기호가 작은따옴표가 아닌 큰따옴표만 허용한다는 것입니다. 두 번째 실수는 json 이름-값 쌍의 "이름"(콜론 왼쪽 부분)이 어떤 경우에도 큰따옴표를 사용해야 한다는 것입니다. 세 번째 오류는 마지막 값 뒤에 쉼표를 추가할 수 없다는 것입니다.
또한 json은 객체 및 배열을 나타내는 데에만 사용할 수 있습니다. json_decode()를 문자열이나 값에 사용하면 null이 반환됩니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
