憨厚生

----Java's Slave----
***Java's Host***

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  165 随笔 :: 17 文章 :: 90 评论 :: 0 Trackbacks
json入门(1)
     json是JavaScript Object Notation的简称;在web系统开发中与AJAX相结合用的比较多。
 在ajax中数据传输有2中方式:文本类型,常用responseText属性类获取;XML类型,常用responseXML属性来获取
 返回文本类型,处理起来比较简单,处理XML在前台处理比较麻烦;但是在系统开发中返回简单的文本类型常不能满足
 需求,返回XML在前台处理起来又比较复杂;
     在此情况下,用json处理起来就比较方便;关于json和XML的优缺点比较,网上说的比较多,在此我就谈写自己在使用
 过程中的感受:XML权威不可否认,但是在前台页面处理复杂,不能版本的浏览器实现XML的解析方式也有所差别;json在这
 方面有优势,json就是利用javascrpt语言的特性,把从服务器端返回的字符串转换成js对象;
     在javascrpt中可以用如下方式定义对象:
      var obj={name:"hello world"};
      等价与
      var s="{name:'hello world'}";
      var obj=eval("("+s+")");
     
      如果要获取name属性的值,只需调用obj["name"]即可。如果服务器端返回的是<name>hello world</name>,则要取的name属性
 的值就复杂的多;如果返回的XML格式的数据再复杂些,处理起来更麻烦。而json就是把服务器端返回的文本数据,在前台利用
 javascript语言的特性,把文本数据转换成js对象;
      如下:
      服务器端:
      server.jsp
     
      <%@ page language="java"  pageEncoding="UTF-8"%>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
  <head>
    <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page"> 
  </head>
 
  <body>
    <%
      response.setContentType("text/html;charset=utf-8");
   response.getWriter().write("{name:'hello word',obj:{age:11}}");
    %>
  </body>
 </html>
 
   客户端:
   client.html
   不相关的代码省略不写了
   var strResult = objXMLReq.responseText;
   变量strResult的数值就是"{name:'hello word',obj:{age:11}}";
   利用javascrpt语言的特性:
   strResult=eval("("+strResult+")");
   这样strResult就转换成了js对象了;
   如果你要获取name和age的数值,只需要:
   var name=strResult["name"];
   var age=strResult["obj"]["age"];
   比处理XML数据要方便的多;
  
   文笔不好,请大家见量!json相关内容回陆续推出!
  下载附件:
   /Files/hulizhong/json.pdf
posted on 2008-09-02 19:15 二胡 阅读(365) 评论(1)  编辑  收藏 所属分类: ajax

评论

# re: json入门(1) 2008-09-08 19:23 esmiles
不错,通俗易懂。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: