如果你经常使用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表示:
<>