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中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 PHP
PHP new static 和 new self详解
Feb 19 PHP
利用PHP实现开心消消乐的算法示例
Oct 12 PHP
详细对比php中类继承和接口继承
Oct 11 PHP
PHP通过文件保存和更新信息的方法分析
Sep 12 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
玩转虚拟域名◎+ .
2006/10/09 PHP
文章推荐系统(三)
2006/10/09 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
three.js 入门案例详解
2018/01/23 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
群众路线剖析材料
2014/02/02 职场文书
应届毕业生自荐信
2014/05/28 职场文书
思想政治表现评语
2015/01/04 职场文书
乱世佳人观后感
2015/06/08 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS