PHP는 JSON 데이터를 어떻게 구문 분석하나요? 이 글에서는 PHP에서 JSON 데이터를 파싱하는 기본적인 방법, 즉 JSON 데이터를 인코딩하고 디코딩하는 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
우선 이해해보자 JSON이란?
JSON은 빠르고 쉽게 구문 분석하고 생성할 수 있는 표준 경량 데이터 교환 형식입니다.
XML과 마찬가지로 JSON은 작성하기 쉽고 이해하기 쉬운 텍스트 기반 형식이지만 XML과 달리 JSON 데이터 구조는 XML 버전보다 대역폭을 덜 차지합니다. JSON은 두 가지 기본 구조를 기반으로 합니다.
객체: 은 키/값 쌍(예: 키:값)의 모음으로 정의되며, 각 객체 앞에는 여는 문자가 옵니다. 중괄호 "{ "오른쪽 중괄호 "}"로 시작하고 여러 키/값 쌍은 쉼표 ","로 구분됩니다.
Array: 은 순서가 지정된 값 목록으로 정의됩니다. 배열은 왼쪽 대괄호 "["로 시작하고 오른쪽 대괄호 "]"로 끝납니다. 쉼표 ","로 시작합니다.
JSON에서 키는 항상 문자열이고 값은 문자열, 숫자, true 또는 false, null 또는 객체나 배열일 수 있습니다. 문자열은 큰따옴표로 묶어야 하며 n, t 및 와 같은 이스케이프 문자를 포함할 수 있습니다. JSON 객체는 다음과 같습니다:
{ "book": { "name": "PHP 从入门到精通", "author": "明日科技", "year": 2017, "type": "php编程", "bestseller": true } }
JSON 배열의 예는 다음과 같습니다:
{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ]}
JSON의 데이터 구조가 매우 유사하다는 것을 알 수 있습니다. PHP 배열의 것과 같습니다. php가 JSON 데이터를 어떻게 파싱하는지 알아볼까요?
PHP에는 JSON 데이터를 인코딩하고 디코딩하는 데 사용할 수 있는 내장 함수가 있습니다. 이러한 함수는 json_encode() 함수와 json_decode() 함수로 구현될 수 있습니다. 참고: 이 두 함수는 UTF-8로 인코딩된 문자열 데이터에만 적용됩니다.
PHP에서 JSON 데이터 인코딩
PHP에서는 json_encode() 함수를 사용하여 값을 JSON 형식으로 인코딩합니다. 인코딩된 값은 데이터베이스나 파일 핸들과 같은 리소스를 제외한 모든 PHP 데이터 유형이 될 수 있습니다. 다음 예에서는 PHP 연관 배열을 JSON 개체로 인코딩하는 방법을 보여줍니다.
<?php // 关联数组 $marks = array("Peter"=>65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>
위 예의 출력은 다음과 같습니다.
#🎜🎜 ##🎜🎜 #마찬가지로 PHP 인덱스 배열을 JSON 배열로 인코딩할 수 있습니다. 예:
<?php // 索引数组 $colors = array("红", "绿", "蓝", "橙", "黄"); echo json_encode($colors); ?>
위 예제의 출력은 다음과 같습니다.
# 🎜🎜#다음 예와 같이 JSON_FORCE_OBJECT 옵션을 사용하여 json_encode() 함수가 PHP 인덱스 배열을 JSON 객체로 반환하도록 강제할 수도 있습니다.
<?php // 索引数组 $colors = array("红", "绿", "蓝", "橙"); echo json_encode($colors, JSON_FORCE_OBJECT); ?># 🎜🎜#위 예제의 출력은 다음과 같습니다: # 🎜🎜#
위 예제에서 볼 수 있듯이 비연관 배열은 배열 또는 사물. 그러나 연관 배열은 항상 객체로 인코딩됩니다.
PHP로 JSON 데이터 디코딩
JSON 데이터 디코딩은 인코딩만큼 쉽습니다. PHP json_decode() 함수를 사용하여 JSON으로 인코딩된 문자열을 적절한 PHP 데이터 유형으로 변환할 수 있습니다. 다음 예제에서는 JSON 개체를 PHP 개체로 디코딩하거나 변환하는 방법을 보여줍니다.<?php // 在PHP变量中存储JSON数据 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; var_dump(json_decode($json)); ?>위 예제의 출력은 다음과 같습니다.
기본적으로 json_decode() 함수는 다음을 반환합니다. 객체 . 그러나 JSON 객체가 true로 설정된 경우 연관 배열로 디코딩될 부울 값을 허용하는 두 번째 매개변수 $assoc를 지정하도록 선택할 수도 있습니다. 예를 살펴보겠습니다.
<?php // 在PHP变量中存储JSON数据 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; var_dump(json_decode($json, true)); ?>
위 예의 출력은 다음과 같습니다.
이제 살펴보겠습니다. JSON 데이터를 디코딩하고 PHP에서 JSON 개체 또는 배열의 개별 요소에 액세스하는 방법을 보여주는 또 다른 예입니다.
<?php // 将JSON编码的字符串分配给PHP变量 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; // 将JSON数据解码为PHP关联数组 $arr = json_decode($json, true); // Access values from the associative array echo $arr["Peter"]; // Output: 65 echo $arr["Harry"]; // Output: 80 echo $arr["John"]; // Output: 78 echo $arr["Clark"]; // Output: 90 // 将JSON数据解码为PHP对象 $obj = json_decode($json); // 返回对象的访问值 echo $obj->Peter; // Output: 65 echo $obj->Harry; // Output: 80 echo $obj->John; // Output: 78 echo $obj->Clark; // Output: 90 ?>
위 예제의 출력은 다음과 같습니다.
foreach()를 사용하여 반복할 수도 있습니다. 디코딩된 데이터는 아래와 같습니다.
<?php // 将JSON编码的字符串分配给PHP变量 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; // 将JSON数据解码为PHP关联数组 $arr = json_decode($json, true); // 通过关联数组循环 foreach($arr as $key=>$value){ echo $key . "=>" . $value . "<br>"; } echo "<hr>"; // 将JSON数据解码为PHP对象 $obj = json_decode($json); // 通过对象循环 foreach($obj as $key=>$value){ echo $key . "=>" . $value . "<br>"; } ?>
위 예제의 출력은 다음과 같습니다.
요약: 위 내용은 이 글의 모든 내용을 요약한 것이며, 모든 분들의 공부에 도움이 되기를 바랍니다.
위 내용은 PHP에서 JSON 데이터를 구문 분석하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!