重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

phpjson数据分析,php接受json数据

如何在PHP中解析json

目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。

创新互联公司是一家以网站设计建设,微信小程序、网站开发设计,网络软件产品开发,企业互联网推广服务为主的民营科技公司。主要业务涵盖:为客户提供网站策划、网站设计、网站开发、申请域名、网站优化排名、买链接等服务领域。凭借建站老客户口碑做市场,建设网站时,根据市场搜索规律和搜索引擎的排名收录规律编程,全力为建站客户设计制作排名好的网站,深受老客户认可和赞誉。

从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。

一、json_encode()

该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:

$arr = array ('a'=1,'b'=2,'c'=3,'d'=4,'e'=5);

echo json_encode($arr);

结果为

{"a":1,"b":2,"c":3,"d":4,"e":5}

由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。

二、索引数组和关联数组

PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。

由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

比如,现在有一个索引数组

$arr = Array('one', 'two', 'three');

echo json_encode($arr);

结果为:

["one","two","three"]

三、类(class)的转换

下面是一个PHP的类: class Foo { const ERROR_CODE = '404'; public $public_ex = 'this is public'; private $private_ex = 'this is private!'; protected $protected_ex = 'this should be protected'; public function getErrorCode() { return self::ERROR_CODE; } }

现在,对这个类的实例进行json转换:

$foo = new Foo;

$foo_json = json_encode($foo);

echo $foo_json;

输出结果是

{"public_ex":"this is public"}

可以看到,除了公开变量(public),其他东西(常量、私有变量、方法等等)都遗失了。

php解析json数据

json_encode

对中文的处理是有问题的:

不能处理GBK编码,所有的GBK编码都会替换成空字符;

utf8编码的中文被编码成unicode编码,相当于javascript的escape函数

处理的结果。

为了能正确使用json,首先我们就应该在编码上采用utf8编码,然后再对

json_encode的返回结果稍加处理就可以得到正确的结果了。

即需要加:原始数据$json=iconv("GBK","UTF-8",$json);

json_decode之后需要显示或使用时,再转回来

echo iconv("UTF-8","GBK",$decode['data'][0]['APPName']);

php获得api返回的json数据后,如何解析?

首先你需要使用对方约定方式获取,然后考虑是否使用缓存,最后获取到数据后使用json_decode函数解析成数组格式,接下来就是自己的逻辑代码了。


当前文章:phpjson数据分析,php接受json数据
本文URL:http://cqcxhl.cn/article/hojpeo.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP