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更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
zend optimizer在wamp的基础上安装图文教程
Oct 26 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
php输入流php://input使用浅析
Sep 02 PHP
discuz目录文件资料汇总
Dec 30 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 10 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
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
python列表的增删改查实例代码
2018/01/30 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
餐厅总经理岗位职责
2013/12/31 职场文书
新学期家长寄语
2014/01/19 职场文书
面试自我介绍演讲稿
2014/04/29 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
受伤赔偿协议书
2014/09/24 职场文书
个人委托书范本汇总
2014/10/01 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL