PHP针对JSON操作实例分析


Posted in PHP onJanuary 12, 2015

本文实例分析了PHP针对JSON操作。分享给大家供大家参考。具体分析如下:

由于JSON可以在很多种程序语言中使用,所以我们可以用来做小型数据中转,如:PHP输出JSON字符串供JavaScript使用等。在PHP中可以使用 json_decode() 由一串规范的字符串解析出 JSON对象,使用 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));

输出:

object(stdClass)#1 (5) {

["a"] => int(1)

["b"] => int(2)

["c"] => int(3)

["d"] => int(4)

["e"] => int(5)

}
array(5) {

["a"] => int(1)

["b"] => int(2)

["c"] => int(3)

["d"] => int(4)

["e"] => int(5)

}

$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}

1. json_decode(),字符转JSON,一般用在接收到Javascript 发送的数据时会用到。

<?php

$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"123456789","mail":"nieweihf@163.com","xx":"xxxxxxx"}}';

$web=json_decode($s);

echo '网站名称:'.$web->webname.'<br />网址:'.$web->url.'<br />联系方式:QQ-'.$web->contact->qq.' MAIL:'.$web->contact->mail;

?>

上面的例子中,我们首先定义了一个变量s,然后用json_decode()解析成JSON对象,之后可以按照JSON的方式去使用,从使用情况看,JSON和XML以及数组实现的功能类似,都可以存储一些相互之间存在关系的数据,但是个人觉得JSON更容易使用,且可以使用JSON和JavaScript实现数据共享。

2. json_encode(),JSON转字符,这个一般在AJAX 应用中,为了将JSON对象转化成字符串并输出给 Javascript 时会用到,而向数据库中存储时也会用到。

<?php

$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"123456789","mail":"nieweihf@163.com","xx":"xxxxxxx"}}';

$web=json_decode($s);

echo json_encode($web);

?>

二 .PHP JSON 转数组

<?php

$s='{"webname":"homehf","url":"www.homehf.com","qq":"123456789"}';

$web=json_decode($s); //将字符转成JSON

$arr=array();

foreach($web as $k=>$w) $arr[$k]=$w;

print_r($arr);

?>

上面的代码中,已经将一个JSON对象转成了一个数组,可是如果是嵌套的JSON,上面的代码显然无能为力了,那么我们写一个函数解决嵌套JSON,

<?php

$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"123456789","mail":"nieweihf@163.com","xx":"xxxxxxx"}}';

$web=json_decode($s);

$arr=json_to_array($web);

print_r($arr);
function json_to_array($web){

$arr=array();

foreach($web as $k=>$w){

    if(is_object($w)) $arr[$k]=json_to_array($w); //判断类型是不是object

    else $arr[$k]=$w;

}

return $arr;

}

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP+DBM的同学录程序(3)
Oct 09 PHP
php MsSql server时遇到的中文编码问题
Jun 11 PHP
PHP 作用域解析运算符(::)
Jul 27 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
Yii2中datetime类的使用
Dec 17 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
php页面缓存方法小结
Jan 10 #PHP
php中异常处理方法小结
Jan 09 #PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 #PHP
php模拟登陆的实现方法分析
Jan 09 #PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 #PHP
php实现读取手机客户端浏览器的类
Jan 09 #PHP
ucenter通信原理分析
Jan 09 #PHP
You might like
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
jQuery实现计算器功能
2020/10/19 jQuery
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python open读写文件实现脚本
2008/09/06 Python
跟老齐学Python之总结参数的传递
2014/10/10 Python
wxPython窗口中文乱码解决方法
2014/10/11 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
python 队列详解及实例代码
2016/10/18 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
Python操作mongodb的9个步骤
2018/06/04 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
基于python实现操作git过程代码解析
2020/07/27 Python
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
介绍一下write命令
2012/09/24 面试题
汉语专业应届生求职信
2013/10/01 职场文书
劳资专员岗位职责
2013/12/27 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
2014年会计工作总结
2014/11/27 职场文书