笔者对JSON对象代码进行说明介绍

开发 开发工具
JSON对象对于一个刚入门不久PHP学习者来说是比较陌生的词汇。我们在文章中将会以一个例子来详细介绍PHP JSON类库的用法。

这里考虑都考虑的是服务器返回的是JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明,下面进行JSON对象代码说明:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <title>test2</title> 
  5.  
  6. <script language="javascript" type="text/javascript" src="js/jquery-latest.pack.js"></script> 
  7.  
  8. <script language="javascript" type="text/javascript" src="js/PageDate.js"></script> 
  9.  
  10. </head> 
  11. <body> 
  12. <div> 
  13.    <div> 
  14.     <br /> 
  15.     <input id="first" type="button" value=" << " /><input id="previous" type="button" 
  16. value=" < " /><input id="next" type="button" value=" > " /><input id="last" type="button" 
  17.  value=" >> " /> 
  18.     &nbsp;<span id="pageinfo"></span> 
  19.     <ul id="datas"> 
  20. <li id="template"> 
  21.  <span id="OrderID"> 
  22.   订单ID  
  23.  </span>/  
  24.  <span id="CustomerID"> 
  25.  客户ID  
  26.  </span> 
  27.  <span id="EmployeeID"> 
  28.  雇员ID  
  29.  </span>/  
  30.  <span id="OrderDate"> 
  31.  订购日期  
  32.  </span>/  
  33.  <span id="ShippedDate"> 
  34.  发货日期  
  35.  </span>/  
  36.  <span id="ShippedName"> 
  37.  货主名称  
  38.  </span>/  
  39.  <span id="ShippedAddress"> 
  40.  货主地址  
  41.  </span>/  
  42.  <span id="ShippedCity"> 
  43.  货主城市  
  44.  </span>/  
  45.  <span id="more"> 


注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。 对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了。#t#

因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:

  1.  type: "get",//使用get方法访问后台  
  2.  dataType: "json",//返回json格式的数据  
  3.  url: "Handler.ashx",//要访问的后台地址  
  4.  data: "pageIndex=" + pageIndex,//要发送的数据  
  5.  complete :function(){$("#load").hide();},//AJAX请求完成时隐藏loading提示  
  6.  success: function(msg){//msg为返回的数据,在这里做数据绑定  
  7.  var data = msg.table;  
  8.  $.each(data, function(i, n){  
  9. var row = $("#template").clone();  
  10. row.find("#OrderID").text(n.OrderID);  
  11. row.find("#CustomerID").text(n.CustomerID);  
  12. row.find("#EmployeeID").text(n.EmployeeID);  
  13. row.find("#OrderDate").text(ChangeDate(n.OrderDate));  
  14. if(n.RequiredDate !== undefined) row.find("#ShippedDate").text(ChangeDate(n.RequiredDate));  
  15. row.find("#ShippedName").text(n.ShipName);  
  16. row.find("#ShippedAddress").text(n.ShipAddress);  
  17. row.find("#ShippedCity").text(n.ShipCity);  
  18. row.find("#more").html("<a href=OrderInfo.aspx?id=" + n.OrderID + "&pageindex="+pageIndex+">&nbsp;More</a>");  
  19. row.attr("id","ready");//改变绑定好数据的行的id  
  20. row.appendTo("#datas");//添加到模板的容器中  
  21.  });  
  22.  $("[@id=ready]").show();  
  23.  SetPageInfo();  
  24.  }  
  25. });  
  26. }  
  27.  
  28. function ChangeDate(date)  
  29. {  
  30.  return date.replace("-","/").replace("-","/");  

这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON对象就提供了一个不超过3k的脚本库。

责任编辑:chenqingxiang 来源: IT168
相关推荐

2010-01-08 13:16:54

Json入门文档

2009-12-25 09:25:54

ADO.NET实例

2010-01-05 10:47:05

command对象

2009-12-23 13:23:29

ADO.Net Sql

2009-12-10 14:11:54

Visual Basi

2009-12-11 14:21:55

VS2010程序

2010-01-06 15:30:51

JSON和XML

2010-01-05 17:06:46

JSON 数据

2010-01-04 11:26:13

ADO对象模型

2010-02-02 13:28:46

Python变量

2010-01-06 10:35:02

Json_Decode

2009-12-01 19:12:41

Visual Stud

2009-12-07 16:42:35

WCF编程

2009-12-08 10:35:29

WCF地址

2010-01-07 09:31:27

Json数据异常

2010-01-25 18:19:17

C++特性

2010-01-07 17:24:31

JSON 解析器

2009-12-09 17:20:13

2010-02-02 14:42:38

Python线程

2010-01-25 18:19:17

C++特性
点赞
收藏

51CTO技术栈公众号