이전 글 "5분 만에 PHP에서 배열과 문자열을 서로 변환하는 방법을 가르쳐주세요"에서는 PHP에서 배열과 문자열을 서로 변환하는 관련 지식을 자세히 소개했습니다. 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('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); $arr1 = array('一' => 1, '二' => 2, '三' => 3, '四' => 4, '五' => 5); echo json_encode($arr1); ?>
输出结果:
由上述示例我们能够看到,通过json_encode()能够将PHP的数组元素转换为JSON合适的数据,而且只有UTF-8 编码的数据对该函数有效。
上述示例转换的是PHP中的一维数组,接下来我们看一下多维数组转换的结果是什么样的,示例如下:
<?php $arr_2 = array(); // 三维数组 $arr_2['member']['lisi']['job'] = "worker"; $arr_2['member']['lisi']['age'] = 30; $arr_2['member']['wangwu']['job'] = "student"; $arr_2['member']['wangwu']['age'] = 10; echo json_encode($arr_2); //{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}} ?>
输出结果:
上述示例是通过函数将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 class Emp { public $name = ""; public $hobbies = ""; public $birthdate = ""; } $e = new Emp(); $e->name = "sachin"; $e->hobbies = "sports"; $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p"); $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03")); echo json_encode($e); ?>
输出结果:
由此我们便通过json_encode()函数完成了PHP中对象转换为JSON格式。
<strong><span style="font-size: 20px;">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
JSON은 주로 데이터를 전송하는 데 사용됩니다. 이는 경량 데이터 교환 형식입니다. PHP 프로그래밍 언어와는 완전히 다른 데이터를 저장하고 표현합니다.
<strong><span style="font-size: 20px;">json_encode()</span></strong>
JSON 인코딩🎜🎜🎜 PHP의 json_encode()
는 JSON 인코딩 변수에 사용됩니다. 이 함수의 기본 구문 형식은 다음과 같습니다. 🎜<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>🎜 필요한 것 주의할 점은
json_encode()
함수가 성공적으로 실행되면 반환되는 결과는 JSON 데이터입니다. 작업 오류가 발생하면 반환되는 결과는 🎜🎜Parameters $value는 인코딩해야 하는 값을 나타냅니다. json_encode()의 특별한 점은 UTF-8로 인코딩된 데이터만 이 함수에 유효하다는 것입니다. 매개변수 <code>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 형식의 데이터로 변환하는 예제를 통해 PHP에서 json_encode() 함수의 사용을 살펴보겠습니다. 🎜<?php $jsonStr = '{"key1":"value1","key2":"value2"}'; print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2 ?>🎜출력 결과: 🎜🎜🎜🎜🎜우리는 위의 예에서 PHP 배열 요소는 json_encode()를 통해 JSON에 적합한 데이터로 변환될 수 있으며 UTF-8로 인코딩된 데이터만 이 함수에 유효합니다. 🎜🎜위의 예는 PHP에서 1차원 배열을 변환한 것입니다. 다음으로 다차원 배열 변환의 결과를 살펴보겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜위의 예는 함수를 사용하여 다음을 수행하는 것입니다. PHP 변환에서 배열 요소를 변환합니다. 다음으로 PHP 개체를 JSON 형식의 데이터로 변환하는 방법을 살펴보겠습니다. 🎜🎜rrreee🎜 출력 결과: 🎜🎜🎜🎜🎜또 다른 예를 살펴보겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜 🎜 🎜🎜이것으로부터 우리는 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 형식으로 나타낸다는 것입니다. 변환, 즉 디코딩하려면 json_encode() 함수와 마찬가지로 디코딩된 데이터도 UTF-8로 인코딩된 데이터여야 합니다. assoc 매개변수는 매개변수가 true인 경우를 의미합니다. 반환된 결과는 배열이며, 매개변수가 false인 경우 반환됩니다. 결과는 객체입니다. 🎜🎜 매개변수 심도는 정수형 매개변수를 나타내고 매개변수 options
는 바이너리 마스크를 나타냅니다. json_encode
()와의 차이점은 이 함수가 현재 지원되는 기능이 많지 않고 현재 JSON_BIGINT_AS_STRING
만 지원된다는 것입니다. 🎜🎜다음으로 PHP가 어떻게 디코딩하는지 예를 들어보겠습니다. 🎜rrreee🎜출력 결과: 🎜🎜
通过上述示例我们看到了通过json_decode()对JSON进行解码,上述是解码成数组,下面我们看一下解码成对象,示例如下:
<?php $jsonStr = '{"key1":"value1","key2":"value2"}'; print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2 ?>
输出结果:
由此我们便通过json_encode()函数与json_decode()函数完成了PHP数据与JSON的编码与解码。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
위 내용은 PHP에서 JSON 인코딩 및 디코딩(자세한 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!