【问题标题】:Accessing JSON on server side (asp.net)在服务器端访问 JSON (asp.net)
【发布时间】:2013-09-17 22:26:40
【问题描述】:

我有一个 web 应用程序,我们仍然停留在 asp.net 2.5 中。我们已经开始在前端使用一些更新的技术,包括将我们的一些数据加载到 JSON 对象中,并使用 localStorage 在应用程序中传递它们。效果非常好。

未来我们将把我们的 ASP.NET Web 表单架构改为 HTML5/JQuery 前端和 Web API 后端。因此,我们正在尝试为未来写作,同时仍受限于我们旧的 Web 表单回传和业务对象。因此,现在我们正在从搜索表单发布到搜索结果页面 Web 表单,并且我们将从业务对象中调用一个方法来获取并返回搜索结果。

我们传入的条件对象有 20 个左右的值和几个集合(产品线 ID、类别 ID 等)。所以这是一个稍微复杂的对象。在旧表单中,我们从控件中获取值,验证它们,然后使用 asp.net 控件将它们传递,这是一个单一的表单解决方案。我们的新解决方案有一个搜索表单和一个结果页面。我们在内部存储中的 JSON 对象中将值从一个表单传递到另一个表单。我无法从服务器端真正做到这一点,因此我还将值隐藏在表单上的一个隐藏字段中,当我 POST 到结果页面时,我可以在服务器端抓取这些值(最终我们将从新的使用ajax的形式)。所以现在我可以看到数据,如何在 asp.net 后面的代码中解析和使用 JSON 对象。我需要加载 20 个左右的搜索条件值并遍历 ID 集合(Guid 和 int)以将它们加载到相同的条件对象中。然后将该对象作为搜索方法参数传入,搜索结果将返回。不知道如何在服务器端操作 json。

【问题讨论】:

    标签: c# asp.net json webforms


    【解决方案1】:

    如果我理解这个问题,您的服务器中有一个 JSON 字符串,您只需要使用它。

    最简单的方法是定义一个表示数据的类(或在本例中为几个类),然后简单地将 JSON 反序列化为该类的实例。从那里开始,您就有了一个常规对象,并且可以对它做任何您需要的事情,包括如果您愿意,可以将其序列化回 JSON。

    使用JSON.NET(又名Newtonsoft.Json),它很简单:

    var myObject = JsonConvert.DeserializeObject<SomeType>(jsonString);
    

    如果您在构建类时需要帮助,可以使用json2csharp,您可以在其中传入一个示例 JSON 文件,它会为您构建适当的 C# 类。

    【讨论】:

    • Newtonsoft.Json 支持 .NET 2.0,所以看起来这是一个不错的起点。
    【解决方案2】:

    如果 .Net 框架升级到 3.5 或更高版本,您可以使用 DataContractJsonSerializer 类。

    但是,我在网上找到了这篇文章,http://www.netfxharmonics.com/2008/01/DojrNET-Dojo-RPC-Library-NET-20

    使用 Dojr.Net 库并与 .Net 2.0 兼容。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多