使用JSON復(fù)雜的結(jié)構(gòu)的使用說明
使用JSON名稱/值對或 XML 時,實際上是使用 JavaScript 從應(yīng)用程序中取得數(shù)據(jù)并將數(shù)據(jù)轉(zhuǎn)換成另一種數(shù)據(jù)格式。在這些情況下,JavaScript 在很大程度上作為一種數(shù)據(jù)操縱語言。
用來移動和操縱來自 Web 表單的數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)換為一種適合發(fā)送給服務(wù)器端程序的格式。但是,有時候 JavaScript 不僅僅作為格式化語言使用。在這些情況下,實際上使用 JavaScript 語言中的對象來表示數(shù)據(jù),而不僅是將來自 Web 表單的數(shù)據(jù)放進(jìn)請求中。在這些情況下,使用JSON從 JavaScript 對象中提取數(shù)據(jù),然后再將數(shù)據(jù)放進(jìn)名稱/值對或 XML,就有點兒多此一舉 了。
這時就合適使用 JSON:JSON 允許輕松地將 JavaScript 對象轉(zhuǎn)換成可以隨請求發(fā)送的數(shù)據(jù)(同步或異步都可以)。JSON 并不是某種魔彈;但是,它對于某些非常特殊的情況是很好的選擇。不要認(rèn)為您不會遇到這些情況。閱讀本文和下一篇文章來了解 JSON,這樣,遇到這類問題時您就知道該怎么辦了。
簡單地說,使用JSON可以將 JavaScript 對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個字符串,或者在異步應(yīng)用程序中將字符串從 Web 客戶機傳遞給服務(wù)器端程序。#t#
這個字符串看起來有點兒古怪(稍后會看到幾個示例),但是 JavaScript 很容易解釋它,而且 JSON 可以表示比名稱/值對更復(fù)雜的結(jié)構(gòu)。例如,可以表示數(shù)組和復(fù)雜的對象,而不僅僅是鍵和值的簡單列表。
當(dāng)需要表示一組值時,JSON 不但能夠提高可讀性,而且可以減少復(fù)雜性。例如,假設(shè)您希望表示一個人名列表。在 XML 中,需要許多開始標(biāo)記和結(jié)束標(biāo)記;如果使用典型的名稱/值對(就像在本系列前面文章中看到的那種名稱/值對),那么必須建立一種專有的數(shù)據(jù)格式,或者將鍵名稱修改為 person1-firstName 這樣的形式。
如果使用JSON,就只需將多個帶花括號的記錄分組在一起:
- Code:
- { "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" }
- ]}