您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 怒江分类信息网,免费分类信息发布

PHP中JSON的应用方法

2024/2/20 6:12:16发布18次查看
php中json的应用方法
如何使用json,php5.2开始内置了json的支持,当然,如果低于这个版本的话,那么市面上有很多php版本的实现,随 便下一个用就ok啦,现在主要是说说php内置支持的json,很简单,两个函数:json_encode和json_decode(跟序列化很像啦),一个编码,一个解码,先看看编码的使用:
'陈毅鑫', 'nick' => '深空', 'contact' => array( 'email' => 'shenkong at qq dot com', 'website' => 'http://www.phprm.com', ));$json_string = json_encode($arr);echo $json_string;?>
很简单的将一个数组json了,需要指出的是,在非utf-8编码下,中文字符将不可被encode,结果会出来空值,所以,如果你使用 gb2312编写php代码,那么就需要将包含中文的内容使用iconv或者mb转为utf-8再进行json_encode,上面输出结果如下:
{name:u9648u6bc5u946b,nick:u6df1u7a7a,contact:{email:shenkong at qq dot com,website:http://www.phprm.com}}
我都说了和序列化很像,你还不信,编码后就要解码,php提供了相应的函数json_decode,json_decode执行后,将会得到一个对象,操作如下:
'陈毅鑫', 'nick' => '深空', 'contact' => array( 'email' => 'shenkong at qq dot com', 'website' => 'http://www.phprm.com', ));$json_string = json_encode($arr);$obj = json_decode($json_string);print_r($obj);?>
访问对象内的属性会吧?$obj->name,这样子的,当然,也可以把它转位数组,方便调用啦:
$json_string = json_encode($arr); $obj = json_decode($json_string); $arr = (array) $obj; print_r($arr);
php转来转去的用途不是特别大,除了缓存生成,感觉还不如直接存数组呢,不过,当你和前台交互的时候,它的作用就出来咯,下面看看我怎么用javascript来使用这段字符:

上面中,直接将这个字符串赋给一个变量,它就变成一个javascript数组了(专业化术语应该不叫数组,不过由于php的习惯问题,我就 一直叫数组好了,方便理解),这样,可以很方便的对arr进行遍历或者任意做你想做的事情了,写到这里,好像都没提到ajax哦?是哦,联想一下,如果服 务端返回的responsetext用json过的字符串代替xml的话,前台javascript处理起来是不是很方便呢?狗皮膏药就是这样用的.
其实写到这里,除了数据的存储格式不太一样外,json和xml也没什么太大区别哦,不过下面我说的一点,虽然和xml没多大关系,不过, 可以说明json更大范围的应用,那就是,跨域的数据调用,由于安全性问题,ajax不支持跨域调用,这样要调用不同域名下的数据,很麻烦哦,虽然有解决 方案(stone在他的讲座上提到过了代理啊什么的虽然听不懂但是知道能解决),我写两个文件,足以展示跨域调用了.
主调文件index.html

被调文件profile.php
'陈毅鑫', 'nick' => '深空', 'contact' => array( 'email' => 'shenkong at qq dot com', 'website' => 'http://www.phprm.com', ));$json_string = json_encode($arr);echo getprofile($json_string);?>
本文链接:
收藏随意^^请保留教程地址.
怒江分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录