通過JSON 標(biāo)準(zhǔn)與JavaScript 的關(guān)系說明介紹
JSON 是依據(jù) JavaScript 中文字對象表示法的子集所創(chuàng)建的數(shù)據(jù)交換格式。雖然 JavaScript 可接受的文字值語法非常靈活,不過必須注意,JSON 的規(guī)則要嚴(yán)格得多。例如,根據(jù) JSON 標(biāo)準(zhǔn),對象成員的名稱必須為有效的 JSON 字符串。JSON 中的字符串必須用引號括起來。而 JavaScript 則允許對象成員以引號或撇號分隔
JSON 標(biāo)準(zhǔn) 對于許多應(yīng)用場合非常好用,但在另外一些情況下則存在缺陷,使用不太理想。XML 通常使用效果不太理想的領(lǐng)域之一是 Ajax 風(fēng)格的 web 應(yīng)用程序。Ajax 是用于構(gòu)建交互式 web 應(yīng)用程序的技術(shù)。
此類應(yīng)用程序通過使用對 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ù)交換格式(請參見 RFC 4627)。與 JSON 標(biāo)準(zhǔn)一樣,它便于讀者閱讀、獨(dú)立于平臺,并且具有廣泛的可實(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)用程序,在任何場合,只要應(yīng)用程序需要將結(jié)構(gòu)化信息作為文本進(jìn)行交換或存儲,即可使用它。
本文探討了 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ù)、字符串和布爾值。對于 JavaScript 來說,有意思的一點(diǎn)是,除了標(biāo)量類型之外,它還支持結(jié)構(gòu)化類型的文字,如數(shù)組和對象。此功能允許在按需要?jiǎng)?chuàng)建和初始化數(shù)組及對象時(shí)使用簡潔的語法。
JavaScript 中的數(shù)組文字由零個(gè)或多個(gè)表達(dá)式組成,每個(gè)表達(dá)式代表數(shù)組的一個(gè)元素。數(shù)組元素括在方括號內(nèi) ([]),并以逗號分隔。以下示例使用具有七大洲名稱的七個(gè)字符串元素來“從字面上”定義數(shù)組。