詳細(xì)說明轉(zhuǎn)換JSON的使用信息集合
轉(zhuǎn)換JSON包含一個人類和計算機(jī)都能識別的混合信息集合。人類可讀內(nèi)容的恰當(dāng)呈現(xiàn),如條目標(biāo)題、分類標(biāo)簽、鏈接標(biāo)題、權(quán)限描述等等,依賴于一種在轉(zhuǎn)換為轉(zhuǎn)換JSON過程中必須正確保存的語言上下文。
如果您閱讀了本系列前面的文章,那么應(yīng)已對數(shù)據(jù)格式有了相當(dāng)?shù)恼J(rèn)識。前面的文章解釋了在許多異步應(yīng)用程序中如何恰當(dāng)?shù)厥褂眉兾谋竞秃唵蔚拿Q/值對??梢詫?shù)據(jù)組合成下面這樣的形式:
- firstName=Brett&lastName=McLaughlin&email=brett@newInstance.com
這樣就行了,不需要再做什么了。實(shí)際上,Web 老手會意識到通過 GET 請求發(fā)送的信息就是采用這種格式。
然后,本系列討論了 XML。顯然,XML 得到了相當(dāng)多的關(guān)注(正面和負(fù)面的評價都有),已經(jīng)在 Ajax 應(yīng)用程序中廣泛使用。關(guān)于如何使用 XML 數(shù)據(jù)格式,可以回顧 本系列前面的文章:
- <request> <firstName>BrettfirstName> <lastName>McLaughlinlastName>
- <email>brett@newInstance.comemail>request>
這里的數(shù)據(jù)與前面看到的相同,但是這一次采用 XML 格式。這沒什么了不起的;這只是另一種數(shù)據(jù)格式,使我們能夠使用 XML 而不是純文本和名稱/值對。
本文討論另一種數(shù)據(jù)格式,JavaScript Object Notation(JSON)。轉(zhuǎn)換JSON看起來既熟悉又陌生。它提供了另一種選擇,選擇范圍更大總是好事情。
- { "people": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
- { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
- { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }]}
在使用名稱/值對或 XML 時,實(shí)際上是使用 JavaScript 從應(yīng)用程序中取得數(shù)據(jù)并將數(shù)據(jù)轉(zhuǎn)換成另一種數(shù)據(jù)格式。在這些情況下,JavaScript 在很大程度上作為一種數(shù)據(jù)操縱語言,用來移動和操縱來自 Web 表單的數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)換為一種適合發(fā)送給服務(wù)器端程序的格式。
但是,有時候 JavaScript 不僅僅作為格式化語言使用。在這些情況下,實(shí)際上使用 JavaScript 語言中的對象來表示數(shù)據(jù),而不僅是將來自 Web 表單的數(shù)據(jù)放進(jìn)請求中。在這些情況下,從 JavaScript 對象中提取數(shù)據(jù),然后再將數(shù)據(jù)放進(jìn)名稱/值對或 XML,就有點(diǎn)兒多此一舉 了。#t#
這時就合適使用 JSON:轉(zhuǎn)換JSON允許輕松地將 JavaScript 對象轉(zhuǎn)換成可以隨請求發(fā)送的數(shù)據(jù)(同步或異步都可以)。轉(zhuǎn)換JSON并不是某種魔彈;但是,它對于某些非常特殊的情況是很好的選擇。