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 fsockopen写的HTTP下载的类
Feb 22 PHP
php google或baidu分页代码
Nov 26 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 PHP
ThinkPHP实现事务回滚示例代码
Jun 23 PHP
PHP 快速排序算法详解
Nov 10 PHP
php实现简单的上传进度条
Nov 17 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
php中final关键字用法分析
Dec 07 PHP
PHP FileSystem 文件系统常用api整理总结
Jul 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
PHP设计聊天室步步通
2006/10/09 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
Python中的装饰器用法详解
2015/01/14 Python
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
python日志logging模块使用方法分析
2019/05/23 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
django创建简单的页面响应实例教程
2019/09/06 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
美国家居装饰店:Pier 1
2019/09/04 全球购物
Servlet的生命周期
2013/08/25 面试题
给国外客户的邀请函
2014/01/30 职场文书
社区春季防火方案
2014/06/02 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP