通過JSON 標(biāo)準(zhǔn)與JavaScript 的關(guān)系說明介紹
JSON 是依據(jù) JavaScript 中文字對(duì)象表示法的子集所創(chuàng)建的數(shù)據(jù)交換格式。雖然 JavaScript 可接受的文字值語法非常靈活,不過必須注意,JSON 的規(guī)則要嚴(yán)格得多。例如,根據(jù) JSON 標(biāo)準(zhǔn),對(duì)象成員的名稱必須為有效的 JSON 字符串。JSON 中的字符串必須用引號(hào)括起來。而 JavaScript 則允許對(duì)象成員以引號(hào)或撇號(hào)分隔
JSON 標(biāo)準(zhǔn) 對(duì)于許多應(yīng)用場(chǎng)合非常好用,但在另外一些情況下則存在缺陷,使用不太理想。XML 通常使用效果不太理想的領(lǐng)域之一是 Ajax 風(fēng)格的 web 應(yīng)用程序。Ajax 是用于構(gòu)建交互式 web 應(yīng)用程序的技術(shù)。
此類應(yīng)用程序通過使用對(duì) web 服務(wù)器的帶外輕型調(diào)用來代替整頁回發(fā),從而提供了更為迅捷的用戶體驗(yàn)。這些異步調(diào)用通過 JavaScript 在客戶端進(jìn)行初始化,涉及設(shè)置數(shù)據(jù)格式、將其發(fā)送到 web 服務(wù)器,以及分析和處理返回的數(shù)據(jù)。大多數(shù)瀏覽器可以構(gòu)建、發(fā)送和分析 XML,而 JavaScript Object Notation(或 JSON)提供了一種適用于 Ajax 風(fēng)格的 web 應(yīng)用程序的標(biāo)準(zhǔn)數(shù)據(jù)交換格式。#t#
JSON 是一種基于文本的開放式數(shù)據(jù)交換格式(請(qǐng)參見 RFC 4627)。與 JSON 標(biāo)準(zhǔn)一樣,它便于讀者閱讀、獨(dú)立于平臺(tái),并且具有廣泛的可實(shí)現(xiàn)性。根據(jù) JSON 標(biāo)準(zhǔn)設(shè)置格式的數(shù)據(jù)是輕型的,可由 JavaScript 實(shí)現(xiàn)輕而易舉地進(jìn)行分析,使之成為適用于 Ajax web 應(yīng)用程序的理想數(shù)據(jù)交換格式。JSON 主要是一種數(shù)據(jù)格式,因此它不局限于 Ajax web 應(yīng)用程序,在任何場(chǎng)合,只要應(yīng)用程序需要將結(jié)構(gòu)化信息作為文本進(jìn)行交換或存儲(chǔ),即可使用它。
本文探討了 JSON 標(biāo)準(zhǔn)及其與 JavaScript 的關(guān)系,并將其與 XML 進(jìn)行比較。文中討論了用于 .NET 的開源 JSON 實(shí)現(xiàn) Jayrock,并提供了許多使用 JavaScript 和 C# 創(chuàng)建和分析 JSON 消息的示例。
了解 JavaScript 中的文字表示法在編程語言中,文字用于“從字面上”表達(dá)固定值,如常量整數(shù)值 4 或字符串“Hello, World”。文字可用在大多數(shù)允許使用表達(dá)式的語言中,如控制語句的部分條件、調(diào)用函數(shù)時(shí)的輸入?yún)?shù)、變量賦值等等。例如,以下 C# 和 Visual Basic 代碼使用常量整數(shù)值 42 來初始化變量。
不同的編程語言允許使用不同類型的文字。大多數(shù)編程語言至少都支持標(biāo)量類型的文字,如整數(shù)、浮點(diǎn)數(shù)、字符串和布爾值。對(duì)于 JavaScript 來說,有意思的一點(diǎn)是,除了標(biāo)量類型之外,它還支持結(jié)構(gòu)化類型的文字,如數(shù)組和對(duì)象。此功能允許在按需要?jiǎng)?chuàng)建和初始化數(shù)組及對(duì)象時(shí)使用簡(jiǎn)潔的語法。
JavaScript 中的數(shù)組文字由零個(gè)或多個(gè)表達(dá)式組成,每個(gè)表達(dá)式代表數(shù)組的一個(gè)元素。數(shù)組元素括在方括號(hào)內(nèi) ([]),并以逗號(hào)分隔。以下示例使用具有七大洲名稱的七個(gè)字符串元素來“從字面上”定義數(shù)組。