国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > AJAX > 正文

Ajax中數(shù)據(jù)傳遞的另一種模式 javascript Object Notation思想(JSON)

2024-09-01 08:29:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Ajax是“異步j(luò)avascript和XML”的縮寫已經(jīng)眾所周知,然而雖然XML是看上去的重要組成部分,它卻不是必須的。一位資深的軟件工程師Douglas Crock ford 開發(fā)了一個(gè)內(nèi)建于 javascript 的數(shù)據(jù)格式,稱為javascript 對(duì)象表示(JSON,javascript Object Notation),意思是直接使用Ajax對(duì)象來(lái)傳遞信息,可以讀作“Jason”。
1. 什么是 JSON
JSON概念很簡(jiǎn)單,JSON 是一種輕量級(jí)的數(shù)據(jù)格式,他基于 javascript 語(yǔ)法的子集,即數(shù)組和對(duì)象表示。由于使用的是 javascript 語(yǔ)法,因此JSON 定義可以包含在javascript 文件中,對(duì)其的訪問(wèn)無(wú)需通過(guò)基于 XML 的語(yǔ)言來(lái)額外解析。不過(guò)在使用 JSON 之前,很重要的一點(diǎn)是理解 javascript 中數(shù)組及對(duì)象字面量的特殊語(yǔ)法。
1.1 數(shù)組字面量
數(shù)組字面量,是用一對(duì)方括號(hào)括起一組用逗號(hào)隔開的 javascript 值,例如:
代碼如下:
var aNames=["hello", 12, true , null];
[html]
1.2 對(duì)象字面量
對(duì)象字面量,是通過(guò)兩個(gè)花括號(hào)來(lái)定義的。在花括號(hào)內(nèi)可以放置任意數(shù)量的“名稱-值”對(duì),定義格 式字符串值”。除了最后一行外,每個(gè)“名稱-值”對(duì)后必須有一個(gè)逗號(hào)(這與Perl 中的聯(lián)合數(shù)組的定義有些類似)。例如:
[code]
var oCar = {
"color": "red",
"doors" : 4,
"paidFor" : true
};

1.3 混合字面量
我們可以混用對(duì)象和數(shù)組字面量,來(lái)創(chuàng)建一個(gè)對(duì)象數(shù)組,或一個(gè)包含數(shù)組的對(duì)象。例如:
代碼如下:
{comments:[
{
id:1,
author:"someone1",
url:"http://someone1.x2design.net",
content:"hello"
},
{
id:2,
author:"someone2",
url:"http://someone2.x2design.net",
content:"hello"
},
{
id:3,
author:"someone3",
url:"http://someone3.x2design.net",
content:"hello"
}
]};

1.4 JSON 語(yǔ)法
在Ajax應(yīng)用中,就是服務(wù)器直接生成javascript語(yǔ)句,客戶端獲取后直接用eval方法來(lái)獲得這個(gè)對(duì)象,這樣就可以省去解析XML的性能損失。同時(shí),在javascript 通信中使用JSON作為數(shù)據(jù)格式的好處很明星,可以立即獲得數(shù)據(jù)的值,因此可以更快的訪問(wèn)其中包含的數(shù)據(jù)。
var oCarInfo = eval("(" + sJSON + ")");
請(qǐng)記住:在javascript中花括號(hào)也是一個(gè)語(yǔ)句。要讓解析器知道這個(gè)花括號(hào)表示的是一個(gè)對(duì)象而非一個(gè)語(yǔ)句的唯一方法是能否找到封裝它的圓括號(hào)(它是用來(lái)說(shuō)明代碼是一個(gè)表達(dá)式而非一個(gè)語(yǔ)句)。
1.5 JSON 編碼和解碼
作為 JSON 資源的一部分,Corockford 開發(fā)了一個(gè)能夠?qū)崿F(xiàn) JSON 和Javascript 對(duì)象直接解碼和編碼的工具。這個(gè)工具的源程序可以在 www.crockford.com/JSON/json.js 中下載。
在上面提出用到eval() 存在些固有的不足:它是用來(lái)對(duì)傳入的任何 Javascript 代碼求值的,而不僅僅針對(duì)JSON。因此,當(dāng)涉及企業(yè)級(jí) web 應(yīng)用程序開發(fā)時(shí),它存在很大的安全隱患。為了解決這個(gè)問(wèn)題,可以使用只用來(lái)將 JSON 代碼轉(zhuǎn)換為 Javascript 的解析器 JSON.parse() 方法來(lái)實(shí)現(xiàn)。例如:
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 原平市| 祁门县| 八宿县| 两当县| 林口县| 涿州市| 罗定市| 舟山市| 白沙| 县级市| 扶余县| 西昌市| 柞水县| 伽师县| 修文县| 航空| 买车| 稻城县| 安图县| 察雅县| 怀仁县| 周至县| 永丰县| 吴江市| 扶绥县| 敦化市| 衡阳市| 宁晋县| 炎陵县| 朝阳市| 宿松县| 湘潭县| 鹰潭市| 潢川县| 深水埗区| 读书| 蚌埠市| 剑河县| 阿尔山市| 永州市| 尉氏县|