HP数组转JSON函数json_encode和JSON转数组json_decode函数的使用方法

这两个函数比较简单,我这里直接写例子,但是有一点一定要注意,json数据只支持utf-8格式,GBK格式的数据转换为json会报错!

json_encode()用法:

[blockquote]

<?php$data =array(‘name’=>’jianqingwang’,‘sex’=>’man’,‘title’=>’PHPER’,‘location’=>’XiaMen’);

$new_data =json_encode($data);

var_dump($data);echo ”<br><br>;var_dump($new_data);

[/blockquote]

得到的数据:

[blockquote]

array(4) { [”name]=> string(12) ”jianqingwang [”sex]=> string(3) ”man [”title]=> string(5) ”PHPER [”location]=> string(6) ”XiaMen }

string(71) ”{”name:jianqingwang,sex:man,title:PHPER,location:XiaMen}

[/blockquote]

json_decode()函数用来把json数组转换为数组的,用法如下:

json的数据为:{”status:1,data:{”prefix:134,province:北京,city:北京,isp:移动,code:10,zipcode:100000,types:中国移动 GSM,mobile:13488888888″},message:success}

用json_decode转换后:

[blockquote]

<?php
$data =file_get_contents('http://sj.apidata.cn/?mobile=13488888888');//获取接口的json数据
$new_data =json_decode($data);
var_dump($new_data);

[/blockquote]

得到如下结果:

[blockquote]

object(stdClass)#1 (3) { [”status]=> int(1) [”data]=> object(stdClass)#2 (8) { [”prefix]=> int(134) [”province]=> string(6) ”北京 [”city]=> string(6) ”北京 [”isp]=> string(6) ”移动 [”code]=> int(10) [”zipcode]=> int(100000) [”types]=> string(16) ”中国移动 GSM [”mobile]=> string(11) ”13488888888 } [”message]=> string(7) ”success }

[/blockquote]

很显然,我们转换json数据后得到一个对象,我们要怎么用它呢?

直接用

$new_data->data->isp//移动
$new_data->data->province//省份

这样的形式访问,为什么这样访问,我们看下它的数据结构就知道了

http://www.wangtuizhijia.com/wp-content/uploads/2017/05/1-3-300x288.jpg

博客原文:数组转JSON函数json_encode和JSON转数组json_decode函数的使用方法