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 相关文章推荐
PHP EOT定界符的使用详解
Sep 30 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
php读取javascript设置的cookies的代码
Apr 12 PHP
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
php获取网页标题和内容函数(不包含html标签)
Feb 03 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
ThinkPHP中自定义错误页面和提示页面实例
Nov 22 PHP
php中file_exists函数使用详解
May 08 PHP
php 中的closure用法详解
Jun 12 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
laravel框架使用极光推送消息操作示例
Feb 15 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
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
Dojo 学习要点
2010/09/03 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
vue 获取视频时长的实例代码
2019/08/20 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
解决Vue watch里调用方法的坑
2020/11/07 Javascript
[05:41]2014DOTA2西雅图国际邀请赛 小组赛7月10日TOPPLAY
2014/07/10 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
Python入门学习之字符串与比较运算符
2015/10/12 Python
python基本语法练习实例
2017/09/19 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Python的条件锁与事件共享详解
2019/09/12 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
社区活动策划方案
2014/08/21 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
2014年内勤工作总结
2014/11/24 职场文书
服装店员工管理制度
2015/08/07 职场文书