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 expects parameter 1 to be resource, array given 错误
Mar 23 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
PHP请求Socket接口测试实例
Aug 12 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
详解php中的implements 使用
Jun 13 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
如何利用PHP实现上传图片功能详解
Sep 24 PHP
PHP命令行与定时任务
Apr 01 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
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
PHP安全上传图片的方法
2015/03/21 PHP
帝国cms目录结构分享
2015/07/06 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
简单三步,搞掂内存泄漏
2007/03/10 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
简述vue中的config配置
2018/01/23 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
python实现猜单词小游戏
2020/05/22 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
战略合作协议书范本
2014/04/18 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
暑期培训班策划方案
2014/08/26 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
2014年女职工工作总结
2014/11/27 职场文书
跳高加油稿
2015/07/21 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python