JSON格式数据是现如今利用极其广泛的WEB运用的数据格式,它有着构造清晰、语法大略、占用字节少等等特点。
比较较早期盛行的XML格式数据来讲,JSON格式数据有着更加轻便、可读性更好、解析速率更快等等上风。

PHP措辞操作JSON格式数据是有着先天上风的,由于PHP是弱类型措辞,加上PHP自身的数组和JSON格式数据有着基本同等的数据构造,以是PHP操作JSON格式数据非常的大略、方便、快捷。

2. JSON

JSON格式数据除了基本数据类型整型、浮点、字符串、布尔之外,还有两个分外的凑集型类型,它们便是数组(Array)和字典(Dictionary),下面福哥将分别给大家先容一下。

php解析json数据PHP操作JSON格局数据的技能 GraphQL

2.1 字典

所谓的字典类型便是构造内的数据因此Key-Value的办法成对的存储的,通过Key可以快速地得到对应的Value,一个字典构造内Key不能重复。

{"id":35,"name":"鬼谷子叔叔","url":"https://tongfu.net/home/35.html"}

2.2 数组

数组便是用来存储多个数据的凑集,数组内的元素之间没有任何关系,数组内的元素以顺序的整型数字作为键,通过键可以快速地得到对应的元素。

["PHP","Python","Java","JavaScript","C/C++","Asp.net"]3. 数组与JSON

在PHP措辞里面数组转换JSON格式数据是通过json_encode函数完成的,PHP的数组转换到JSON格式数据会根据数组内的元素的键是否知足顺序整型数字的条件判断,如果知足就会转换成JSON的数组,如果不知足就会转换成JSON的字典。

3.1 直接转换

如果直接通过json_encode转换的话,汉字部分会被转换成unicode码。

$jsonData=json_encode(array("id"=&gt;35,"name"=>"鬼谷子叔叔","url"=>"https://tongfu.net/home/35.html"));echo$jsonData."<br/>";$jsonData=json_encode(array("PHP","Python","Java","JavaScript","C/C++","Asp.net"));echo$jsonData."<br/>";

3.2 转换显示汉字

如果想要保留汉字内容,不转换成unicode码,须要利用如下的办法进行转换。

$jsonData=json_encode(array("id"=>35,"name"=>"鬼谷子叔叔","url"=>"https://tongfu.net/home/35.html"),JSON_UNESCAPED_UNICODE);echo$jsonData."<br/>";$jsonData=json_encode(array("PHP","Python","Java","JavaScript","C/C++","Asp.net"),JSON_UNESCAPED_UNICODE);echo$jsonData."<br/>";

4. 工具与JSON

在PHP措辞里面对象转换JSON格式数据也是通过json_encode函数完成的,PHP的工具转换到JSON格式数据一定会转换成字典类型的。

4.1 直接转换

如果直接通过json_encode转换的话,汉字部分会被转换成unicode码。

classuser{public$id;public$name;public$url;}classAPIControllerextendsSystemAPIController{protectedfunctionuser_process(){$user=newuser();$user->id=35;$user->name="鬼谷子叔叔";$user->url="https://tongfu.net/home/35.html";$jsonData=json_encode($user);var_dump($jsonData);}}

4.2 转换显示汉字

如果想要保留汉字内容,不转换成unicode码,须要利用如下的办法进行转换。

classuser{public$id;public$name;public$url;}classAPIControllerextendsSystemAPIController{protectedfunctionuser_process(){$user=newuser();$user->id=35;$user->name="鬼谷子叔叔";$user->url="https://tongfu.net/home/35.html";$jsonData=json_encode($user,JSON_UNESCAPED_UNICODE);var_dump($jsonData);}}

5. 编码与解码

5.1 编码

所谓JSON编码便是将其他类型的数据转换成JSON格式数据的过程,由于JSON格式实在便是一个含有分外格式的字符串,以是JSON编码便是将各种其他类型的数据转成可逆的字符串的过程。

PHP实现编码的办法便是通过内建的json_encode方法完成的,很可惜的是,这个方法对含有中文的源数据仅仅支持UTF-8的编码,如果源数据包含中文且不是UTF-8的编码就会编码失落败返回false。

$jsonData=json_encode(array("id"=>35,"name"=>"鬼谷子叔叔","url"=>"https://tongfu.net/home/35.html"),JSON_UNESCAPED_UNICODE);echo"<h3>JSON格式</h3>";var_dump($jsonData);

5.2 解码

所谓JSON解码便是将JSON格式数据还原本钱来的数据类型的过程,由于JSON格式数据实在便是一个含有分外格式的字符串,以是JSON解码便是将JSON格式的字符串还原本钱来的数据的过程。

PHP实现解码的办法便是通过内建的json_decode方法完成的,不过默认json_decode会将字典还原成stdClass工具而不是array数组,如果要把stdClass也转换成array数组的话就须要一个分外的处理才行。

$jsonData="{\"id\":35,\"name\":\"鬼谷子叔叔\",\"url\":\"https:\/\/tongfu.net\/home\/35.html\"}";$orgData=json_decode($jsonData);echo"<h3>直接还原</h3>";var_dump($orgData);$orgData=json_decode($jsonData,true);echo"<h3>还原stdClass转array</h3>";var_dump($orgData);

6. 总结

本日福哥带着童鞋们针对PHP操作JSON格式数据的技巧系统地讲解了一番,相信大家都该当听明白了!
会操作JSON格式数据了就可以利用PHP开拓程序接口了,也可以利用PHP开拓前后端分离的项目了。

下一课福哥会给大家讲解Python操作JSON格式数据的技巧,敬请期待~~

https://m.tongfu.net/home/35/blog/513245.html