查看: 6314|回复: 0
打印 上一主题 下一主题

谈PHP与JSON

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-25 23:13:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
:某些东西不写写,一段时间就会遗忘。所以,总好写下来。

PHP近年来的发展给web编程界带来更多的活力和惊喜,它使得web中某些特殊功能的实现变得如此简单,以至于我总怀疑:真的是这样吗 ?

   随着web2.0的发展和成熟,ajax的运用越来越广泛。Ajax配合xml通信的技术恐怕是everybody know,但是实际上很多时候我们没有必要使用xml如此强大的功能,而是使用一个小巧精悍的“玩意”JSON(参见http://www.json.org/json-zh.html)。JSON在极大的方便了web程序员的同时也减少了客户度按与服务端的通信量,提高了用户体验。。。。。。总之好处多多。

   最新的PHP(PHP 5 >= 5.2.0, PECL json:1.2.0-1.2.1,http://www.php.net/manual/zh/ref.json.php) 已经支持JSON。我们可以看到有两个函数json_decode   json_encode ,一般的我们只需要使用json_encode来生成即可。

例:

[codes=php] <?php

print json_encode(array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5));

?>

[/codes]

输出

[codes=php]

{"a":1,"b":2,"c":3,"d":4,"e":5}

[/codes]

由于json是javascript内置支持的,所以不需要任何扩展我们即可访问该结构。

[codes=js]

var myjson = {"a":1,"b":2,"c":3,"d":4,"e":5};

[/codes]

那么 myjsom.a 的值就为1.

来个复杂一点的

[codes=js]

var myjson = {“news”:[{“title”:”new1”, “content”:”first news”},{“title”:”new2”, “content”:”second news”}]};[/codes]

假设上面的结构描述的是两条新闻,那么我们就可以使用DOM遍历来将新闻插入到网页中,而不需要为指定的xml格式文档编写特定的代码,既增加了程序的效率,也提高了代码的可移植性(服务端)。

[codes=js]

for(i=0; i= myjson.news.length; i++)

{

   alert(myjson.news.title);

}

[/codes]

在实际与服务器交互的过程中,当然还要注意如果只有一条记录,那么是无法遍历的,所以还需要判断返回的是否是数组形式(多条记录),这里我显式的转化返回对象为JSON对象。

[codes=js]

var myObject = eval('(' + response + ')');

html = '

';

//判断是否数组

if (myObject.constructor == window.Array)

{

   for(i=0; i   {

     html += '

' + myObject.node.cname + ' ';

   }

}

else

{

   html += '

' + myObject.node.cname + ' ';

}

html += '


';

$('#'+id).append(html);

[/codes]

当然由于众多空间提供商的php版本没有跟上,所以很多朋友不能使用该方法来实现json代码的生成。这里有一篇文章http://gggeek.altervista.org/sw/article_20061113.html,对现有几种JSON扩展给出了比较综合的评价,大家可以参考一下。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

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