设为首页 收藏本站
查看: 658|回复: 0

[经验分享] JSON与PHP开发摘要

[复制链接]

尚未签到

发表于 2015-8-29 07:04:23 | 显示全部楼层 |阅读模式
  JSON(Javascript Object Notation),即JavaScript对象表示,是由资深软件工程师Douglas Crockford开发的。它是一种轻量级的数据格式,基于JavaScript语法子集,即数组和对象表示。因为它使用的是JavaScript语法,所以JSON定义可以包含在JavaScript文件中,对其的访问无需通过基于XML的语言来额外解析。目前WEB通信中,在与服务器之间的往返通信中不是使用纯文本格式就是XML,而JSON则为AJAX通信提供了一种新的选择。JSON语法官方网站
  JSON和JavaScript对象间的解码和编码
实现JSON和JavaScript对象之间解码和编码,首先需要一个工具程序json2.js。
编码方法:JSON.parse();
解码方法:JSON.stringify();

  演示代码:

1 var oCar = new Object(); //新建轿车对象
2 oCar.doors = 4;
3 oCar.color = "red";
4 oCar.year = 1995;
5 oCar.drivers = new Array("xzw","michael");
6 var x = JSON.stringify(oCar); //将JavaScript对象转换成JSON字符串
7
8 document.write(x+"<br/>");
9
10 var oObject = JSON.parse(x); //将JSON代码解析还原成JavaScript对象
11 document.write(oObject.drivers[0]);
  服务器端(PHP)JSON工具
PHP5.2内置了JSON的支持,如果不清楚自己的PHP是否支持,可以用phpinfo查看一下。内置的编码方法:json_encode(),解码方法:json_decode()
以下是PHP中JSON编码和解码的例子:

1 class Person{
2     var $age;
3     var $hairColor;
4     var $name;
5     var $siblingName;
6     function Person($age,$name,$hairColor){
7         $this->name = $name;
8         $this->age = $age;
9         $this->hairColor = $hairColor;
10         $this->siblingName = array();
11     }
12 }
13
14 $oPerson = new Person("23","二毛","red");
15 $oPerson->siblingName[0] = "大毛";
16 $oPerson->siblingName[1] = "小毛";
17
18 $sJSONText = json_encode($oPerson); //编码
19 print ($sJSONText);
20 $oPerson = json_decode($sJSONText); //解码
21
22 print("<p>Name:".$oPerson->name."</p>");
23 print("<p>Age:".$oPerson->age."</p>");
24 print("<p>hairColor:".$oPerson->hairColor."</p>");
25 print("<p>Sibling Names:</p><ul>");
26 for($i=0;$i<count($oPerson->siblingName);$i++){
27     print("<li>".$oPerson->siblingName[$i]."</li>");
28 }
29 print("</ul>");
  如果手头的PHP没有内嵌JSON实现,可以去网上下载一个JSON.PHP。通过这种方式,使用前需要先创建JSON实例。

1     //include JSON-PHP and instantiate the object
2     require_once("JSON.php");
3     $oJSON = new JSON();
  通过引用JSON.php改写前面的二毛兄弟例子:

1 require_once("JSON.php");
2 $oJSON = new JSON();
3
4 class Person{
5     var $age;
6     var $hairColor;
7     var $name;
8     var $siblingName;
9     function Person($age,$name,$hairColor){
10         $this->name = $name;
11         $this->age = $age;
12         $this->hairColor = $hairColor;
13         $this->siblingName = array();
14     }
15 }
16
17 $oPerson = new Person("23","二毛","red");
18 $oPerson->siblingName[0] = "大毛";
19 $oPerson->siblingName[1] = "小毛";
20
21 //$sJSONText = json_encode($oPerson); //编码
22 $sJSONText = $oJSON->encode($oPerson);
23 print ($sJSONText);
24 //$oPerson = json_decode($sJSONText); //解码
25 $oPerson = $oJSON->decode($sJSONText);
26
27 print("<p>Name:".$oPerson->name."</p>");
28 print("<p>Age:".$oPerson->age."</p>");
29 print("<p>hairColor:".$oPerson->hairColor."</p>");
30 print("<p>Sibling Names:</p><ul>");
31 for($i=0;$i<count($oPerson->siblingName);$i++){
32     print("<li>".$oPerson->siblingName[$i]."</li>");
33 }
34 print("</ul>");
35   一切就这么简单。
JSON格式与XML相比,由于不需要与开始标签(opening tag)匹配的结束标签(closing tag),因此代码精简的很多。适当的运用将大大提高数据交换效率,值得一试。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-105653-1-1.html 上篇帖子: linux下php扩展curl的安装 下篇帖子: php模拟post提交数据,用处很多,可用来网站的采集,登陆等等
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表