如果你經常使用ASP.NET Web服務,那麼你便知道他們可以以不同的方法進行通信。可以使用SOAP 1.1/1.2,HTTP POST和HTTP GET的一些支持的協議調用ASP.NET Web服務。我們可以通過HTTP POST或GET非常容易的調用Web服務,並且也有 能力進行信息傳遞和接收簡稱JSON編碼的對象,而不是使用普通的字符串和XML傳遞。
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它采用完全獨立於語言的文本格 式,可替換XML成為AJAX程序中的數交換格式。它類似於XML和SOAP,同樣具有跨平台的特性,是基於JavaScript 的一個子集,並易於人閱讀和 編寫,同時也易於機器解析和生成。而且也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等),這些特性使 JSON成為理想的數據交換語言。微軟選擇JSON在服務器和Ajax客戶端可以實現數據交換。在客戶端和服務器端均實現了(數據的)串行化器和並行化器 以使數據按JSON的格式交換。這提供了一種使浏覽器向服務器發出Web Service請求的方法。同時,它也提供一個異步通信層,連接浏覽器與網絡終端。 Ajax從Beta版開始全面用JSON格式描述服務器和客戶端之間傳輸的數據,Microsoft.Web.Script.Services命名空間提供這方面的支持。
盡管有許多宣傳關於XML如何擁有跨平台,跨語言的優勢,然而,除非應用於 Web Services,否則, 在普通的Web應用中,開發者經常為XML的解析傷透了腦筋,無論是服務器端生成或處理 XML,還是客戶端用 JavaScript 解析 XML,都常常導致 復雜的代碼,極低的開發效率。實際上,對於大多數Web 應用來說,他們根本不需要復雜的 XML 來傳輸數據,XML 的擴展性很少具有優勢,許多 AJAX 應 用甚至直接返回HTML片段來構建動態 Web 頁面。和返回 XML 並解析它相比,返回 HTML 片段大大降低了系統的復雜性,但同時缺少了一定的靈活 性。
現在,JSON 為Web應用開發者提供了另一種數據交換格式。讓我們來看看JSON到底是什麼?同 XML 或 HTML 片段相比,JSON 提供了更好的簡單性和靈活性。JSON 數據格式解析和XML一樣,JSON 也是基於純文本的數據格式。由於JSON天生是為 JavaScript 准備的,因此,JSON的數據格式非常簡單,您可以用 JSON 傳輸一個簡單的String,Number,Boolean,也可以傳輸一個數組,或者一個 復雜的 Object對象。
它有兩種結構:
1、 “名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對 象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
2、 值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。 先看看用下面Xml表示:
<posts> <post> <id>1</id> <title>標題1</title> <content>內容</content> <posterId>12</posterId> </post> <post> <id>2</id> <title>標題2</title> <content>內容</content> <posterId>13</posterId> </post> </posts>