好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Ajax中數據傳遞的另一種模式 javascript Object Notation思想(JSON)

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

熱門標簽:辦理一個400電話多少錢 信貸電銷機器人有用嗎 莆田防封電銷卡價格 蓄意標記地圖標注 接聽電話機器人哪有 察縣地圖標注 如何用地圖標注各分公司 電銷機器人適用范圍 廣西ai語音電銷機器人哪家好
Ajax是“異步javascript和XML”的縮寫已經眾所周知,然而雖然XML是看上去的重要組成部分,它卻不是必須的。一位資深的軟件工程師Douglas Crock ford 開發了一個內建于 javascript 的數據格式,稱為javascript 對象表示(JSON,javascript Object Notation),意思是直接使用Ajax對象來傳遞信息,可以讀作“Jason”。
1. 什么是 JSON
JSON概念很簡單,JSON 是一種輕量級的數據格式,他基于 javascript 語法的子集,即數組和對象表示。由于使用的是 javascript 語法,因此JSON 定義可以包含在javascript 文件中,對其的訪問無需通過基于 XML 的語言來額外解析。不過在使用 JSON 之前,很重要的一點是理解 javascript 中數組及對象字面量的特殊語法。
1.1 數組字面量
數組字面量,是用一對方括號括起一組用逗號隔開的 javascript 值,例如:
復制代碼 代碼如下:

var aNames=["hello", 12, true , null];
[html]
1.2 對象字面量
對象字面量,是通過兩個花括號來定義的。在花括號內可以放置任意數量的“名稱-值”對,定義格 式字符串值”。除了最后一行外,每個“名稱-值”對后必須有一個逗號(這與Perl 中的聯合數組的定義有些類似)。例如:
[code]
var oCar = {
"color": "red",
"doors" : 4,
"paidFor" : true
};

1.3 混合字面量
我們可以混用對象和數組字面量,來創建一個對象數組,或一個包含數組的對象。例如:
復制代碼 代碼如下:

{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 語法
在Ajax應用中,就是服務器直接生成javascript語句,客戶端獲取后直接用eval方法來獲得這個對象,這樣就可以省去解析XML的性能損失。同時,在javascript 通信中使用JSON作為數據格式的好處很明星,可以立即獲得數據的值,因此可以更快的訪問其中包含的數據。
var oCarInfo = eval("(" + sJSON + ")");
請記住:在javascript中花括號也是一個語句。要讓解析器知道這個花括號表示的是一個對象而非一個語句的唯一方法是能否找到封裝它的圓括號(它是用來說明代碼是一個表達式而非一個語句)。
1.5 JSON 編碼和解碼
作為 JSON 資源的一部分,Corockford 開發了一個能夠實現 JSON 和Javascript 對象直接解碼和編碼的工具。這個工具的源程序可以在 www.crockford.com/JSON/json.js 中下載。
在上面提出用到eval() 存在些固有的不足:它是用來對傳入的任何 Javascript 代碼求值的,而不僅僅針對JSON。因此,當涉及企業級 web 應用程序開發時,它存在很大的安全隱患。為了解決這個問題,可以使用只用來將 JSON 代碼轉換為 Javascript 的解析器 JSON.parse() 方法來實現。例如:
var oObject = JSON.parse (sJSON);
同時,它也提供了一種將 Javascript 對象轉換為 JSON 字符串(數據傳輸時使用的)的工具(在Javascript 中沒有內建這種功能支持)。你要做的只是將對象傳入到 JSON.Stringify() 方法。請看下面的例子:
復制代碼 代碼如下:

var oCar = new Object();
oCar.doors = 4;
oCar.color = "blue";
oCar.year = 1995;
oCar.drivers = new Array("Penny", "Dan" , "Kris");
document.write(JSON.stringify(oCar));

這段代碼將輸出如下所示的JSON 字符串:
{"doors" : 4, "color" : "blue", "year" :1995, "drivers" : ["Penny", "Dan" , "Kris"]}


2. JSON 與 XML
正如上面所說,JSON 與 XML 相比的一大優點就是它更加簡單。
請看 XML 數據表示實例:
使用XML表示:
復制代碼 代碼如下:

comments>
comment>
id>1/id>
author>someone1/author>
url>http://someone1.x2design.net/url>
content>hello/content>
/comment>
comment>
id>2/id>
author>someone2/author>
url>http://someone2.x2design.net/url>
content>someone1/content>
/comment>
comment>
id>3/id>
author>someone3/author>
url>http://someone3.x2design.net/url>
content>hello/content>
/comment>
/comments>

使用JSON表示:
復制代碼 代碼如下:

{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"
}
]};

很容易發現,許多冗余的信息不見了。由于不需要有與開始標簽(opening tag)匹配的結束標簽(closing tag),因此傳送相同的信息所需的字節數大大降低了。創始人 Corockford 將其稱之為“XML 的減肥方案”)。
JSON 格式的數據與 XML 相比,缺點是對于外行人可讀性更差。當然,有一種觀點是,數據交換格式不是用肉眼觀察的。如果是通過工具對來回傳送的數據進行創建和解析,那么的確沒有理由要求數據必須使人們易于閱讀。問題的實質在于:存在可用的 JSON 工具。

3. 服務器端 JSON 工具
java :java JSON 工具,由Douglas Crock ford 開發,可在 www.crockford.com/JSON/java/
中下載,它可以在 JSP 中使用。

4. JSON 優勢與缺點
JSON不僅減少了解析XML解析帶來的性能問題和兼容性問題,而且對于javascript來說非常容易使用,可以方便的通過遍歷數組以及訪問對象屬性來獲取數據,其可讀性也不錯,基本具備了結構化數據的性質。不得不說是一個很好的辦法,而且事實上google maps就沒有采用XML傳遞數據,而是采用了JSON方案。

JSON 另外一個優勢是跨域可行性,例如你在www.xxx.com的網頁里使用是完全可行的,這就意味著你可以跨域傳遞信息。而使用XMLHttpRequest卻獲取不了跨域的信息,這是javascript內部的安全性質所限制的。

JSON看上去很美,是不是就能完全取代XML呢?事實并非如此,而原因就在于XML的優勢:通用性。要使服務器端產生語法合格的javascript代碼并不是很容易做到的,這主要發生在比較龐大的系統,服務器端和客戶端有不同的開發人員。它們必須協商對象的格式,這很容易造成錯誤。

無論如何,JSON是一個誘人的技術,準備做一個大量的試用。希望屆時可以獲取大的性能提高。
您可能感興趣的文章:
  • IOS 應用之間的跳轉和數據傳遞詳解
  • Vuejs第九篇之組件作用域及props數據傳遞實例詳解
  • 深入淺析JavaScript中數據共享和數據傳遞
  • Android開發之利用Intent實現數據傳遞的方法
  • 基于startActivityForResult方法處理兩個Activity之間數據傳遞問題
  • Android實現Activities之間進行數據傳遞的方法
  • Ruby on Rails中MVC結構的數據傳遞解析
  • jQuery學習筆記之 Ajax操作篇(二) - 數據傳遞
  • asp.net不同頁面間數據傳遞的多種方法
  • 解析activity之間數據傳遞方法的詳解
  • 深入理解Activity之間的數據傳遞
  • WinForm中窗體間的數據傳遞交互的一些方法
  • ASP.NET 頁面間數據傳遞方法小結
  • C#中數據的傳遞以及ToolStripProgressBar

標簽:儋州 阿拉善盟 銅陵 張掖 平涼 鷹潭 益陽 延邊

巨人網絡通訊聲明:本文標題《Ajax中數據傳遞的另一種模式 javascript Object Notation思想(JSON)》,本文關鍵詞  Ajax,中,數據,傳遞,的,另一種,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ajax中數據傳遞的另一種模式 javascript Object Notation思想(JSON)》相關的同類信息!
  • 本頁收集關于Ajax中數據傳遞的另一種模式 javascript Object Notation思想(JSON)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 真人一级毛片一级是A片真人片| 大桥未久超短紧身裙女教师在线| 亚洲成AV人片在线观看影院| 床戏高潮做进去大尺度视频网站| 日日夜夜婷婷| 秋霞午夜鲁丝片午夜精品久| 免费无码又爽又刺激A片色情天美 女生体外高潮和体内哪个爽 | 医生掀开奶罩边边躁狠狠躁视频| 色欲精品久久人妻av中文字幕| 高h肠灌| 六月丁香激情网| 淑芬的性yin荡生活| 国产精品99久久免费公侵犯玩弄 | 国产亚洲精品美女2020久久| 久久精品一区二区国产 | 91口爆吞精国产| yin荡公交车+多人+高cH| 精品91?海角乱在线观看| bl啊好湿好硬双性| 欧美videossex另类| 赤坂丽美姐妹肉奴隶| av无码精品久久久久精品| 我把护士日出水了40分钟| 骏游斗地主| 台湾一级毛片武则天| 老师嗯灬啊灬把腿张开灬漫画| 国产一级婬片免费| 天美十大最美女演员| 动漫3d教师被吸乳羞羞漫画| 黄色片免费看| 五月婷婷激情综合网| 8x8ⅹ人成视频免费入口 | 男插女下体视频| 尤物AV天堂一区二区在线观看| 欧美毛片无码一区二区高潮喷水 | 色情欧美一区二区久久夜爽| 亚洲天堂二区| 好爽好舒服| 男人把女人抱到床上搞| 天堂在线资源www中文| 伊人精品A片一区二区三区|