【问题标题】:what is the use of json in .net.net中json的用途是什么
【发布时间】:2010-05-21 06:24:27
【问题描述】:

谁能解释一下什么是 json 方法以及它在 .net 中的用途

【问题讨论】:

  • 你问JSON是干什么用的?你了解 JSON 是什么吗?或者您对何时何地应该使用它有疑问?请提供有关您当前的理解水平和具体困惑领域的更多详细信息。谢谢。
  • 其实我只是知道它的 JavaScript Object Notation ,已经看到它被使用了...想知道更多...如何使用它...它有什么好处

标签: .net asp.net json


【解决方案1】:

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

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

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

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

现在与 ASP.NET 相关:

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

【讨论】:

    【解决方案2】:

    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 服务。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • okzz...所以使用 jsonp 我们可以进行交叉 ajax 调用...json 和 Ajax 是否相似...?
      • 不,它们不相似,但可以一起使用。 JSON 是一种格式,而 AJAX 是一种允许浏览器向 Web 服务器发送异步请求的机制。
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        有几件事要补充...

        对于 XML,您需要一个 XML 解析器,而所有主流浏览器都已经内置了 JSON 解析器 - 所以您不必担心序列化/反序列化。

        您还可以节省流量(带宽),我认为它更易于阅读。

        【讨论】:

          猜你喜欢
          • 2010-09-27
          • 1970-01-01
          • 2010-09-07
          • 1970-01-01
          • 1970-01-01
          • 2010-11-28
          • 1970-01-01
          相关资源
          最近更新 更多