PHP JSON格式数据交互实例代码详解


Posted in PHP onJanuary 13, 2011

在PHP中解析JSON主要用到json_encode和json_decode两个PHP JSON函数,比PHP解析XML方便很多,下面详细介绍下PHP JSON的使用。
JSON基础介绍

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

JSON主要有两种结构:

“名称/值”对的集合,在PHP中可以理解为关联数组 (associative array)。

值的有序列表(An ordered list of values)。在PHP中可以理解为普通数组(array)。

对象是一个无序的“‘名称/值'对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值' 对”之间使用“,”(逗号)分隔。

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

我目前对JSON的理解更偏向于数组,类似于PHP中的关联数组,你可以将PHP数组转换为JSON格式。

更多JSON的介绍请参考JSON官网和IBM关于JSON的介绍

PHP JSON解析实例

PHP5.2开始已经将JSON作为PHP扩展的一部分,所以并不需要另外安装JSON。另外为了保证下面的PHP JSON实例不出现中文乱码,请保证你的编码格式为UTF8。

JSON是Javascript的一部分,首先我们看下Javascript中如何定义JSON

var json_obj = {'WebName':'PHP网站开发教程网'}; 
alert(json_obj.WebName); 
var json_arr =[{'WebName':'PHP网站开发教程网','WebSite':'https://3water.com'},{'ArtTitle':'PHP JSON实例讲解'}] 
alert(json_arr[1].ArtTitle); 
var php_json = [['PHP网站开发教程网','https://3water.com'],['文章标题','PHP JSON实例讲解']]; 
alert(php_json[1][0]);

在这段JSON实例代码中我构建了所有的JSON形式,
第1行,定义了JSON以对象形式存在
第4行,定义了JSON以数组形式存在,嵌套了JSON对象,所以有点类似于PHP的关联数组,其实仍然是对象。
第7行,定了JSON以普通数组形式存在。
注意:由于Javascript是区分大小写的,所以访问JSON关联数组对象时注意key的大小写问题。

PHP与JSON格式数据交互时,第一步需要将PHP数组转换为JSON格式的数据,可使用PHP5自带的json_encode函数,当PHP解析传递过来的JSON格式数据时需要使用json_decode函数进行解析转换为PHP数组,PHP转换并解析JSON数据的实例代码如下

<?php 
$json_arr = array('WebName'=>'PHP网站开发教程网','WebSite'=>'https://3water.com'); 
$php_json = json_encode($json_arr); 
echo $php_json; 
$php_json = json_decode($php_json); 
print_r($php_json); 
?>

说明:这里通过PHP定义了关联数组,然后通过json_encode转换为JSON格式的数据,通过echo语句可以看到转换后的JSON对象,通过PHP JSON解析函数json_decode可以将JSON格式的数据解析为PHP的关联数组。如果编码不正确,JSON中文会出现乱码。如果你使用Editplus调试PHP,请注意保存文件时编码将ANSI改为UTF8。

最后我们来看下完整的PHP JSON交互实例

<?php 
$json_arr = array('WebName'=>'PHP网站开发教程网','WebSite'=>'https://3water.com'); 
$php_json = json_encode($json_arr); 
?> 
<script type="text/javascript"> 
var php_json = <?=$php_json?>; 
</script> 
<script type="text/javascript"> 
function php_json_dis(php_json) 
{ 
alert(php_json.WebName); 
alert(php_json.WebSite); 
} 
php_json_dis(php_json); 
</script>

至此,PHP通过json_encode和json_decode函数对JSON格式数据进行转换和解析的实例就介绍完了。
PHP 相关文章推荐
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
深入array multisort排序原理的详解
Jun 18 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
PHP中explode函数和split函数的区别小结
Aug 24 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
PHP中phar包的使用教程
Jun 14 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
laravel Model 执行事务的实现
Oct 10 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 PHP
PHP学习笔记之二 php入门知识
Jan 12 #PHP
php算开始时间到过期时间的相隔的天数
Jan 12 #PHP
php数据库密码的找回的步骤
Jan 12 #PHP
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 #PHP
php 变量未定义等错误的解决方法
Jan 12 #PHP
兼容性比较好的PHP生成缩略图的代码
Jan 12 #PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 #PHP
You might like
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
JavaScript 对象、函数和继承
2009/07/07 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
女方婚礼新郎答谢词
2014/01/11 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
个人委托函范文
2015/01/29 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
Python语言内置数据类型
2022/02/24 Python