在.net中使用json有什么用

时间:2010-05-21 06:24:28

标签: .net asp.net json

有人可以解释什么是json方法,并在.net

中使用

5 个答案:

答案 0 :(得分:5)

JSON不是特定于.NET的,它是一种数据传输形式。它可以比作一个字符串数组。它的主要用途是提供一种从Web服务返回数据的方法。

来自Web服务(JSON之前)的数据主要使用XML完成。但是由于文档的复杂遍历,XML的序列化/反序列化成本很高。

由于JSON格式简单,序列化/反序列化的速度要快得多,更不用说它的数据量较小,这意味着它的速度更快。

以上几点都与.NET无关,它们只与Web服务领域的JSON有关。

现在与ASP.NET有关:

您很可能拥有“经典”Web服务(ASMX)或WCF Web服务,并希望从中返回数据。没有任何额外的配置,您的Web服务将返回XML。但是这可以通过几个步骤改为JSON(google'从.net web服务返回json)。最常见的用途是在ASP.NET页面上调用带有AJAX(和/或jQuery)的web服务,其中将数据作为JSON而不是XML返回将因上述原因而受益。

答案 1 :(得分:3)

JSON就是这样:

{
     "firstName": "John",
     "lastName": "Smith",
     "age": 25,
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021"
     },
     "phoneNumber": [
         { "type": "home", "number": "212 555-1234" },
         { "type": "fax", "number": "646 555-4567" }
     ]
 }

这是一种相对(对XML)轻量级的通过Web传输数据的方法(使用Web服务)。

相同数据的XML表示更加旷日持久:

<Person>
  <firstName>John</firstName>
  <lastName>Smith</lastName>
  <age>25</age>
  <address>
    <streetAddress>21 2nd Street</streetAddress>
    <city>New York</city>
    <state>NY</state>
    <postalCode>10021</postalCode>
  </address>
  <phoneNumber type="home">212 555-1234</phoneNumber>
  <phoneNumber type="fax">646 555-4567</phoneNumber>
</Person>

jQuery($.getJSON() method)和ASP.NET MVC(从动作中返回JSONResult)对它有很好的支持。这就是为什么许多.NET开发人员都认为它是一种定制的.NET技术;它不是,它只是.NET所接受的一个。

顾名思义,JSON通常依赖的技术是Javascript(虽然它与语言无关,如XML)。服务器端仅取决于返回JSON数据的Web服务。

答案 2 :(得分:2)

JSON可用于将数据序列化为可互操作的格式,特别适合浏览器使用。在.NET中,您可以编写WCF service which exposes data using JSON。另一种JSON是JSONP,允许跨域AJAX调用。

答案 3 :(得分:1)

JSON是一种将数据发送到java脚本以使用它的方法。 例如,我将应用程序端的对象列表发送到Web应用程序项目的java脚本端,然后我评估它并获得对象列表的相同结构,这意味着您可以像访问的那样到达对象的所有属性在应用程序端使用c#。

答案 4 :(得分:0)

很少要添加......

对于XML,当所有主要浏览器都已内置JSON解析器时,您需要一个XML解析器 - 因此您不必担心序列化/反序列化。

您还节省了流量(带宽),在我看来,它更容易阅读。