下面進行大致的分析Javascript解釋:JSON 可以將 JavaScript 對象中表示的一組數據轉換為字符串,然後就可以在函數之間輕松地傳遞這個字符串,或者在異步應用程序中將字符串從 Web 客戶機傳遞給服務器端程序。
這個字符串看起來有點兒古怪(稍後會看到幾個示例),按照最簡單的形式,可以用下面這樣的 JSON 表示名稱/值對:
- { "firstName": "Brett" }
這個示例非常基本,而且實際上比等效的純文本名稱/值對占用更多的空間:
- firstName=Brett
但是,當將多個名稱/值對串在一起時,JSON 就會體現出它的價值了。首先,可以創建包含多個名稱/值對的記錄,比如:
- { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }
從語法方面來看,這與名稱/值對相比並沒有很大的優勢,但是在這種情況下JavaScript解釋更容易使用,而且可讀性更好。例如,它明確地表示以上三個值都是同一記錄的一部分;花括號使這些值有了某種聯系
當需要表示一組值時,JSON 不但能夠提高可讀性,而且可以減少復雜性。例如,假設您希望表示一個人名列表。在 XML 中,需要許多開始標記和結束標記;如果使用典型的名稱/值對(就像在本系列前面文章中看到的那種名稱/值對),那麼必須建立一種專有的數據格式,或者將鍵名稱修改為 person1-firstName 這樣的形式。
如果使用JavaScript解釋,就只需將多個帶花括號的記錄分組在一起:
- { "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" }]}
這不難理解。在這個示例中,只有一個名為 people 的變量,值是包含三個條目的數組,每個條目是一個人的記錄,其中包含名、姓和電子郵件地址。上面的示例演示如何用括號將記錄組合成一個值。當然,可以使用相同的語法表示多個值(每個值包含多個記錄):
- { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin",
- "email": "brett@newInstance.com" }, { "firstName": "Jason",
- "lastName":"Hunter", "email": "jason@servlets.com" },
- { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@Macfaq.com" } ]
- ,"authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "scIEnce fiction" },
- { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
- { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ],"musicians":
- [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
- { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ]}