>백엔드 개발 >PHP 문제 >PHP가 JSON 데이터를 구문 분석하는 방법을 분석해 보겠습니다.

PHP가 JSON 데이터를 구문 분석하는 방법을 분석해 보겠습니다.

WBOY
WBOY앞으로
2022-05-06 12:03:352386검색

이 기사에서는 PHP에 대한 관련 지식을 제공하며, 주로 PHP에서 JSON 데이터를 구문 분석하는 방법을 소개합니다. JSON은 빠르고 쉽게 구문 분석하고 생성할 수 있는 표준 경량 데이터 교환 형식입니다. 살펴보겠습니다. 모든 사람에게 도움이 되기를 바랍니다.

PHP가 JSON 데이터를 구문 분석하는 방법을 분석해 보겠습니다.

추천 학습: "PHP 비디오 튜토리얼"

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"
    ]
}

PHP에서 JSON 데이터 인코딩

PHP에서 json_encode() 함수는 값을 JSON으로 인코딩하는 데 사용됩니다. 체재. 인코딩된 값은 데이터베이스나 파일 핸들과 같은 리소스를 제외한 모든 PHP 데이터 유형이 될 수 있습니다. 다음 예에서는 PHP 연관 배열을 JSON 개체로 인코딩하는 방법을 보여줍니다.

  // 关联数组
  $marks = array("Peter"=>65, "Harry"=>80, "John"=>78, "Clark"=>90);
  echo json_encode($marks);

마찬가지로 PHP 인덱스 배열을 JSON 배열로 인코딩할 수 있습니다. 예:

  // 索引数组
  $colors = array("红", "绿", "蓝", "橙", "黄");
  echo json_encode($colors);

또한 JSON_FORCE_OBJECT 옵션을 사용하여 json_encode( ) 함수를 사용하여 PHP 인덱스 배열을 인코딩하면 다음 예와 같이 JSON 개체로 반환됩니다.

  // 索引数组
  $colors = array("红", "绿", "蓝", "橙");
  echo json_encode($colors, JSON_FORCE_OBJECT);

PHP로 JSON 데이터 디코딩

JSON 데이터 디코딩은 인코딩만큼 쉽습니다. PHP json_decode() 함수를 사용하여 JSON으로 인코딩된 문자열을 적절한 PHP 데이터 유형으로 변환할 수 있습니다.

이제 JSON 데이터를 디코딩하고 PHP에서 JSON 개체 또는 배열의 개별 요소에 액세스하는 방법을 보여주는 예를 살펴보겠습니다.

<?php  

// 将JSON编码的字符串分配给PHP变量
$json = &#39;{"Peter":65,"Harry":80,"John":78,"Clark":90}&#39;;  

// 将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 = &#39;{"Peter":65,"Harry":80,"John":78,"Clark":90}&#39;;  

// 将JSON数据解码为PHP关联数组
$arr = json_decode($json, true);  

// 通过关联数组循环
foreach($arr as $key=>$value){
    echo $key . "=>" . $value . "";
}
echo "";

// 将JSON数据解码为PHP对象
$obj = json_decode($json);  

// 通过对象循环
foreach($obj as $key=>$value){
    echo $key . "=>" . $value . "";
}

?>

권장 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP가 JSON 데이터를 구문 분석하는 방법을 분석해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제