在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
1
2
3
4
5
6
7
8
|
var json_obj
= {'WebName':'PHP网站开发教程网'}; alert(json_obj.WebName);
var json_arr
=[{'WebName':'PHP网站开发教程网','WebSite':'http://www.leapsoul.cn'},{'ArtTitle':'PHP
JSON实例讲解'}] alert(json_arr[1].ArtTitle);
var php_json
= [['PHP网站开发教程网','http://www.leapsoul.cn'],['文章标题','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数据的实例代码如下
1
2
3
4
5
6
7
8
9
10
11
|
<?php $json_arr
= array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.leapsoul.cn');$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交互实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php $json_arr
= array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.leapsoul.cn');$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网站开发中应用XML进行数据交互的实例,这两天通过PHP解析JSON并进行交互的实例学习和了解了JSON在PHP中的应用,感觉非常方便。
移动开发经常要与服务器数据交互,也常使用json数据格式,那就说说Android json解析。 1.最简单json格式解析如下: //解析json ry { JSONTokener jsonParser = new JSONTokener(strResult); JSONObject jsonObj =...
//点击按钮请求数据函数get() 2.准备一个txt文件 welcome vue 3.编写js代码 [removed] [removed]=function(){ new Vue({ el:'body', //主体为body,有套div时,此处为选择器 methods:{ get:function(){ ...
主要介绍了Json转化为Java对象的实例详解的相关资料,前后端数据交互的情况经常会遇到Json串与java 对象的相互转换方便操作,需要的朋友可以参考下
本文实例分析了Android编程之json解析的方法。分享给大家供大家参考,具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于...
JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议,本文从理论到实践详细的讲解了JSON和JSONP的使用
本章我们讲解一个App后台开发实例,主要包括处理json数据和接口开发。接口开发中讲述了一个手机端卡券管理系统的开发,卡券管理系统包括管理员登录、发放卡券、核销卡券、展示卡券列表和记录用户操作等功能。手机...
微信小程序request请求后台接口php的实例详解 后台php接口:http://www.vueyun.com/good/info 没有处理数据,直接返回了,具体再根据返回格式处理 public function getGoodInfo(Request $request) { $goods_datas...
在和sever后台交互的过程中、有时候、他们需要我们iOS开发者以“application/json”形式上传,具体实例代码大家参考下本
JSON常用与服务器进行数据交互,JSON中“{}”表示JSONObject,“[]”表示JSONArray 如下json数据: 1 {singers:[ 2 {id:02,name:tom,gender:男,tel:[123456,789012]}, 3 {id:03,name:jerry,gender:男,tel:[899999,...
在C#和Rest/Restful以及其它的Web服务交互过程中,大量使用到JSON传递数据,如何快捷的转化C#对象到JSON和转化JSON到C#对象,成为开发过程中频繁使用的内容。传统的方式下,我们需要定义和JSON对象同步的C#类并实例...
主要介绍了JavaScript实现的XML与JSON互转功能,结合实例形式分析了基于javascript的xml与json相关转换功能实现技巧,需要的朋友可以参考下
JSON是一种数据交换格式,而JSONP是一种依靠开发人员创造出的一种非官方跨域数据交互协议。 script标签经常被用来加载不同域下的资源,可以绕过同源策略。(有src属性的都可以获取异域文件)。 如果请求的这个远程...
JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的...
系统之间通过提供webservice接口,以json串方式进行系统之间的数据交互,本教程提供word文档,详细写明了创建步骤和一个项目实例,以便读者快速上手!
Django之缓存实例详解 Django之信号 Django之Form组件验证 作业 第23周 主机管理项目需求分析 主机管理项目架构设计 主机管理项目初始构建 主机管理项目编写插件基类 主机管理项目命令分发器 主机管理项目提取主机...
17、Silverlight(19) - 2.0通信之调用REST服务,处理JSON格式, XML格式, RSS/ATOM格式的数据 介绍 Silverlight 2.0 调用REST服务,处理JSON格式, XML格式, RSS/ATOM格式的数据。 通过 System.Net.WebClient 类调用 ...