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