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简单封装了一些常用JS操作
Feb 25 PHP
php中目录,文件操作详谈
Mar 19 PHP
使用php来实现网络服务
Sep 15 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
10个简化PHP开发的工具
Dec 25 PHP
php静态文件返回304技巧分享
Jan 06 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 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时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
javascript实现可键盘控制的抽奖系统
2016/03/10 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python中使用PIPE操作Linux管道
2015/02/04 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
家长会学生家长演讲稿
2013/12/29 职场文书
修理厂厂长岗位职责
2014/01/30 职场文书
绿化工程实施方案
2014/03/17 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
幼儿园个人总结
2015/02/28 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书