json入門(1)
json是JavaScript Object Notation的簡稱;在web系統(tǒng)開發(fā)中與AJAX相結(jié)合用的比較多。
在ajax中數(shù)據(jù)傳輸有2中方式:文本類型,常用responseText屬性類獲取;XML類型,常用responseXML屬性來獲取
返回文本類型,處理起來比較簡單,處理XML在前臺處理比較麻煩;但是在系統(tǒng)開發(fā)中返回簡單的文本類型常不能滿足
需求,返回XML在前臺處理起來又比較復(fù)雜;
在此情況下,用json處理起來就比較方便;關(guān)于json和XML的優(yōu)缺點比較,網(wǎng)上說的比較多,在此我就談寫自己在使用
過程中的感受:XML權(quán)威不可否認(rèn),但是在前臺頁面處理復(fù)雜,不能版本的瀏覽器實現(xiàn)XML的解析方式也有所差別;json在這
方面有優(yōu)勢,json就是利用javascrpt語言的特性,把從服務(wù)器端返回的字符串轉(zhuǎn)換成js對象;
在javascrpt中可以用如下方式定義對象:
var obj={name:"hello world"};
等價與
var s="{name:'hello world'}";
var obj=eval("("+s+")");
如果要獲取name屬性的值,只需調(diào)用obj["name"]即可。如果服務(wù)器端返回的是<name>hello world</name>,則要取的name屬性
的值就復(fù)雜的多;如果返回的XML格式的數(shù)據(jù)再復(fù)雜些,處理起來更麻煩。而json就是把服務(wù)器端返回的文本數(shù)據(jù),在前臺利用
javascript語言的特性,把文本數(shù)據(jù)轉(zhuǎn)換成js對象;
如下:
服務(wù)器端:
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
不相關(guān)的代碼省略不寫了
var strResult = objXMLReq.responseText;
變量strResult的數(shù)值就是"{name:'hello word',obj:{age:11}}";
利用javascrpt語言的特性:
strResult=eval("("+strResult+")");
這樣strResult就轉(zhuǎn)換成了js對象了;
如果你要獲取name和age的數(shù)值,只需要:
var name=strResult["name"];
var age=strResult["obj"]["age"];
比處理XML數(shù)據(jù)要方便的多;
文筆不好,請大家見量!json相關(guān)內(nèi)容回陸續(xù)推出!
下載附件:
/Files/hulizhong/json.pdf