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数组应该有多大的分析
Jul 30 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
一个简单的php路由类
May 29 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
Jul 09 PHP
PHP命名空间用法实例分析
Sep 04 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 csv操作类代码
2009/12/14 PHP
PHP开发中常用的三个表单验证函数使用小结
2010/03/03 PHP
php获取mysql数据库中的所有表名的代码
2011/04/23 PHP
二招解决php乱码问题
2012/03/25 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
php类自动加载器实现方法
2015/07/28 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
python自定义类并使用的方法
2015/05/07 Python
python 反向输出字符串的方法
2018/07/16 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
python binascii 进制转换实例
2019/06/12 Python
Python logging设置和logger解析
2019/08/28 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
大学军训通讯稿
2014/01/13 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android