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中看实例学正则表达式
Dec 25 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
Jul 07 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP延迟静态绑定的深入讲解
Apr 02 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连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
php简单smarty入门程序实例
2015/06/11 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
python线程、进程和协程详解
2016/07/19 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
python的常见矩阵运算(小结)
2019/08/07 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
《我的第一本书》教学反思
2014/02/15 职场文书
目标责任书格式
2014/07/28 职场文书
实习证明格式范文
2014/10/14 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
导游词之张家口
2019/12/13 职场文书
详解Vue router路由
2021/11/20 Vue.js
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android