JSON学习(二) (转)

在看了blogjava看了emu的一篇<异步json例子>, 感觉不错, 学习并记录下来

原稿地址 http://www.blogjava.net/emu/archive/2007/05/14/117416.html

异步json例子的数据为

  1. <HTML>  
  2. <HEAD>  
  3. <title>异步json例子</title>  
  4. <SCRIPT LANGUAGE="JavaScript">  
  5. function test(){   
  6.     var s = document.createElement("SCRIPT");   
  7.     document.getElementsByTagName("HEAD")[0].appendChild(s);   
  8.     s.src="http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin=123456";   
  9. }   
  10. function visitCountCallBack(data){   
  11.     for(var i in data){   
  12.         var e =document.getElementById(i);   
  13.         if(e) e.innerHTML=data[i];   
  14.     }   
  15.   
  16. }   
  17. </SCRIPT>  
  18. </HEAD>  
  19. <BODY>  
  20. <button onclick="test()">test</button><BR>  
  21. 历史访问人数:<span id="visitcount" style="color:#6600CC">点击test按钮获取数据</span><BR>  
  22. 今天访问人数:<span id="dayvisit" style="color:#CC6633">点击test按钮获取数据</span><BR>  
  23. 阳光指数:<span id="sun" style="color:red">点击test按钮获取数据</span><BR>  
  24. 爱心指数:<span id="love" style="color:violet">点击test按钮获取数据</span><BR>  
  25. 雨露指数:<span id="rain" style="color:blue">点击test按钮获取数据</span><BR>  
  26. 营养指数:<span id="nutri" style="color:green">点击test按钮获取数据</span><BR>  
  27. 花匠级别:<span id="gardener" style="color:#996633">点击test按钮获取数据</span>  
  28. </BODY>  
  29. </HTML>  

其中请求的http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin=123456返回

  1. visitCountCallBack   
  2. (   
  3.   {   
  4.     "visitcount":49036012,   
  5.     "dayvisit":3144,   
  6.     "spacemark":0,   
  7.     "markchange":0,   
  8.     "sun":416,   
  9.     "love":402,   
  10.     "rain":416,   
  11.     "nutri":404,   
  12.     "level":5,   
  13.     "gardener":1   
  14.   }   
  15. );  

相比xml,json的好处是:天生的跨浏览器(比如我的这个demo应该可以跨所有支持dhtml的浏览器而不需要任何修改),客户端解析代价(CPU和内存)非常小,非单根结构(xml是单根结构),标记名只出现一次(xml的标记名在大多数情况下都需要出现两次:<tag>...</tag>,因此浪费了很多流量)
主要缺点是只支持get方式请求,另外跨编码(json资源的编码和引用页面的编码不同)的时候要做一些特殊处理。比如汉字可以预先escape。
此外很多人并不知道json可以异步获取,这个例子很重要的一点是展示了如何异步获取json。

感谢 http://www.blogjava.net/emu/ 分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值