> 백엔드 개발 > PHP 튜토리얼 > PHP에서 JSON 인코딩 및 디코딩(자세한 예)

PHP에서 JSON 인코딩 및 디코딩(자세한 예)

WBOY
풀어 주다: 2023-04-10 19:16:01
원래의
5349명이 탐색했습니다.

이전 글 "5분 만에 PHP에서 배열과 문자열을 서로 변환하는 방법을 가르쳐주세요"에서는 PHP에서 배열과 문자열을 서로 변환하는 관련 지식을 자세히 소개했습니다. PHP의 JSON에 대한 이 지식이 모든 사람에게 도움이 되기를 바랍니다!

PHP에서 JSON 인코딩 및 디코딩(자세한 예)

이전 기사에서는 PHP에서 explode() 함수와 implode() 함수가 필요한 배열과 문자열 간의 변환을 완료하는 방법을 배웠습니다. 구현하려면 다음으로 JSON에 대한 지식을 이해하고 PHP JSON이 변수를 인코딩하는 방법을 살펴봐야 합니다. explode()函数和implode()函数来实现,接下来我们需要了解一下JSON的一些知识,看一下PHP怎样对变量进行JSON编码。

想要进行PHP对变量进行JSON 的编码首先我们需要了解一下什么是JSON,下面我们一起来看一下吧。

JSON是什么

JSON 主要用于传送数据,它是一种轻量级的数据交换的格式,它能够完全的不同于PHP的编程语言来进行储存和表示数据。

它比较容易阅读和编写,同时JSON对于机器的解析和生成也是比较简单,通过JSON能够十分有效的提高数据之间传送的效率。

我们在PHP中已经有内置的JSON拓展,接下来我们就来看一下PHP中的JSON函数,应该如何使用PHP语言来编码JSON对象。

<strong><span style="font-size: 20px;">json_encode()</span></strong>JSON编码

在PHP中的json_encode()是用来对变量进行JSON编码的,该函数的基本语法格式如下:

string json_encode ( $value [, $options = 0 ] )
로그인 후 복사

其中需要注意的是:运行json_encode()函数成功的话,返回的结果就是JSON的数据,如果运行错误,返回的结果是false;

参数$value表示的就是需要进行编码的值,其中json_encode()比较特殊的是,只有UTF-8 编码的数据对该函数有效,参数options表示的是由常量组成的二进制的掩码,这些常量有:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT

接下来我们通过示例来看一下PHP中json_encode()函数的使用,也就是将PHP的数组元素转换为JSON格式的数据,示例如下:

<?php
   $arr = array(&#39;a&#39; => 1, &#39;b&#39; => 2, &#39;c&#39; => 3, &#39;d&#39; => 4, &#39;e&#39; => 5);
   echo json_encode($arr);
   $arr1 = array(&#39;一&#39; => 1, &#39;二&#39; => 2, &#39;三&#39; => 3, &#39;四&#39; => 4, &#39;五&#39; => 5);
   echo json_encode($arr1);
?>
로그인 후 복사

输出结果:

PHP에서 JSON 인코딩 및 디코딩(자세한 예)

由上述示例我们能够看到,通过json_encode()能够将PHP的数组元素转换为JSON合适的数据,而且只有UTF-8 编码的数据对该函数有效。

上述示例转换的是PHP中的一维数组,接下来我们看一下多维数组转换的结果是什么样的,示例如下:

<?php
$arr_2 = array();
// 三维数组
$arr_2[&#39;member&#39;][&#39;lisi&#39;][&#39;job&#39;] = "worker";
$arr_2[&#39;member&#39;][&#39;lisi&#39;][&#39;age&#39;] = 30;
$arr_2[&#39;member&#39;][&#39;wangwu&#39;][&#39;job&#39;] = "student";
$arr_2[&#39;member&#39;][&#39;wangwu&#39;][&#39;age&#39;] = 10;
 
echo json_encode($arr_2);
//{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}}
  ?>
로그인 후 복사

输出结果:

PHP에서 JSON 인코딩 및 디코딩(자세한 예)

上述示例是通过函数将PHP中的数组元素进行转换,接下来我们看一下将PHP对象转换为JSON格式的数据,示例如下:

<?php
class Person{
    public $name = "public name";
    protected $ptName = "protected name";
    private $pName = "private name";
 
    public function sayName(){
        return $this->name;
    }
}
$person1 = new Person();
echo json_encode($person1);//{"name":"public name"}
  ?>
로그인 후 복사

输出结果:

PHP에서 JSON 인코딩 및 디코딩(자세한 예)

再来看一个示例:

<?php
   class Emp {
       public $name = "";
       public $hobbies  = "";
       public $birthdate = "";
   }
   $e = new Emp();
   $e->name = "sachin";
   $e->hobbies  = "sports";
   $e->birthdate = date(&#39;m/d/Y h:i:s a&#39;, "8/5/1974 12:20:03 p");
   $e->birthdate = date(&#39;m/d/Y h:i:s a&#39;, strtotime("8/5/1974 12:20:03"));
 
   echo json_encode($e);
?>
로그인 후 복사

输出结果:

PHP에서 JSON 인코딩 및 디코딩(자세한 예)

由此我们便通过json_encode()函数完成了PHP中对象转换为JSON格式。

<strong><span style="max-width:90%">json_decode()</span></strong>JSON解码

PHP中能够通过json_decode()函数来对JSON格式的字符换进行转换成PHP的变量格式,这也就是解码。下面我们看一下json_decode()函数的基本语法格式,示例如下:

mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
로그인 후 복사

其中需要注意的是:参数json_string表示需要进行转换也就是解码的JSON格式的字符串,同json_encode()函数一样,这个进行解码的数据也必须是UTF-8的编码数据;参数assoc表示当参数是true的时候,返回的结果是个数组,当参数是false是返回的结果是对象;

参数depth表示的是整数类型的参数,参数options表示的是二进制的掩码,与json_encode()不同的是该函数目前没有支持这么多,目前只支持 JSON_BIGINT_AS_STRING

PHP를 사용하여 JSON에서 변수를 인코딩하려면 먼저 JSON이 무엇인지부터 함께 살펴보겠습니다.

JSON이란 무엇입니까


JSON은 주로 데이터를 전송하는 데 사용됩니다. 이는 경량 데이터 교환 형식입니다. PHP 프로그래밍 언어와는 완전히 다른 데이터를 저장하고 표현합니다.

🎜🎜 JSON은 비교적 읽고 쓰기가 쉽습니다. 동시에 JSON은 기계 구문 분석 및 생성이 비교적 간단하여 데이터 전송 효율성을 매우 효과적으로 향상시킬 수 있습니다. 🎜🎜PHP에는 이미 내장된 JSON 확장이 있습니다. 다음으로 PHP의 JSON 기능과 PHP 언어를 사용하여 JSON 개체를 인코딩하는 방법을 살펴보겠습니다. 🎜🎜<strong><span style="font-size: 20px;">json_encode()</span></strong>JSON 인코딩🎜🎜🎜 PHP의 json_encode()는 JSON 인코딩 변수에 사용됩니다. 이 함수의 기본 구문 형식은 다음과 같습니다. 🎜
<?php
   $json = &#39;{"a":1,"b":2,"c":3,"d":4,"e":5}&#39;;
   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>
로그인 후 복사
🎜 필요한 것 주의할 점은 json_encode() 함수가 성공적으로 실행되면 반환되는 결과는 JSON 데이터입니다. 작업 오류가 발생하면 반환되는 결과는 🎜🎜Parameters $value<입니다. /code >는 인코딩해야 하는 값을 나타냅니다. json_encode()의 특별한 점은 UTF-8로 인코딩된 데이터만 이 함수에 유효하다는 것입니다. 매개변수 <code>options는 상수로 구성된 바이너리 마스크를 나타냅니다. .코드에서 이러한 상수는 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK</code입니다. > ,<code>JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT. 🎜🎜다음으로 PHP 배열 요소를 JSON 형식의 데이터로 변환하는 예제를 통해 PHP에서 json_encode() 함수의 사용을 살펴보겠습니다. 🎜
<?php
$jsonStr = &#39;{"key1":"value1","key2":"value2"}&#39;;
print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2
?>
로그인 후 복사
로그인 후 복사
🎜출력 결과: 🎜🎜🎜PHP에서 JSON 인코딩 및 디코딩(자세한 예)🎜🎜우리는 위의 예에서 PHP 배열 요소는 json_encode()를 통해 JSON에 적합한 데이터로 변환될 수 있으며 UTF-8로 인코딩된 데이터만 이 함수에 유효합니다. 🎜🎜위의 예는 PHP에서 1차원 배열을 변환한 것입니다. 다음으로 다차원 배열 변환의 결과를 살펴보겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜PHP에서 JSON 인코딩 및 디코딩(자세한 예)🎜🎜위의 예는 함수를 사용하여 다음을 수행하는 것입니다. PHP 변환에서 배열 요소를 변환합니다. 다음으로 PHP 개체를 JSON 형식의 데이터로 변환하는 방법을 살펴보겠습니다. 🎜🎜rrreee🎜 출력 결과: 🎜🎜🎜PHP에서 JSON 인코딩 및 디코딩(자세한 예)🎜🎜또 다른 예를 살펴보겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜 🎜 PHP에서 JSON 인코딩 및 디코딩(자세한 예)🎜🎜이것으로부터 우리는 json_encode() 함수를 통해 PHP 완성 객체를 JSON 형식으로 변환합니다. 🎜🎜🎜<strong><span style="max-width:90%">json_decode()</span></strong>JSON 디코딩🎜🎜PHP에서는 json_decode() 함수를 사용하여 JSON 형식의 문자를 PHP 변수 형식으로 변환하여 디코딩할 수 있습니다. json_decode() 함수의 기본 구문 형식을 살펴보겠습니다. 🎜rrreee🎜 주목해야 할 점은 json_string 매개변수가 필요한 문자열을 JSON 형식으로 나타낸다는 것입니다. 변환, 즉 디코딩하려면 < code>json_encode() 함수와 마찬가지로 디코딩된 데이터도 UTF-8로 인코딩된 데이터여야 합니다. assoc 매개변수는 매개변수가 true인 경우를 의미합니다. 반환된 결과는 배열이며, 매개변수가 false인 경우 반환됩니다. 결과는 객체입니다. 🎜🎜 매개변수 심도는 정수형 매개변수를 나타내고 매개변수 options는 바이너리 마스크를 나타냅니다. json_encode()와의 차이점은 이 함수가 현재 지원되는 기능이 많지 않고 현재 JSON_BIGINT_AS_STRING만 지원된다는 것입니다. 🎜🎜다음으로 PHP가 어떻게 디코딩하는지 예를 들어보겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜

PHP에서 JSON 인코딩 및 디코딩(자세한 예)

通过上述示例我们看到了通过json_decode()对JSON进行解码,上述是解码成数组,下面我们看一下解码成对象,示例如下:

<?php
$jsonStr = &#39;{"key1":"value1","key2":"value2"}&#39;;
print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2
?>
로그인 후 복사
로그인 후 복사

输出结果:

PHP에서 JSON 인코딩 및 디코딩(자세한 예)

由此我们便通过json_encode()函数与json_decode()函数完成了PHP数据与JSON的编码与解码。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

위 내용은 PHP에서 JSON 인코딩 및 디코딩(자세한 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿