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