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 相关文章推荐
类的另类用法--数据的封装
Oct 09 PHP
PHP的开合式多级菜单程序
Oct 09 PHP
如何跨站抓取别的站点的页面的补充
Oct 09 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
怎样使用php与jquery设置和读取cookies
Aug 08 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
学习PHP session的传递方式
Jun 15 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
PHP实现微信对账单处理
Oct 01 PHP
微信企业转账之入口类分装php代码
Oct 01 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框架分布式数据库连接方法详解
2017/03/14 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
JavaScript DOM 添加事件
2009/02/14 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
JS的数组迭代方法
2015/02/05 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
vuejs如何配置less
2017/04/25 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
使用JS动态显示文本
2017/09/09 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
vue实现计步器功能
2019/11/01 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
python创建和使用字典实例详解
2013/11/01 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
python框架django基础指南
2016/09/08 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
Python iter()函数用法实例分析
2018/03/17 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
python3处理含有中文的url方法
2018/05/10 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
python str字符串转uuid实例
2020/03/03 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Python爬虫与反爬虫大战
2020/07/30 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
日语求职信范文
2013/12/17 职场文书