0

我有一个我们仍然停留在 asp.net 2.5 中的网络应用程序。我们已经开始在前端使用一些更新的技术,包括将我们的一些数据加载到 JSON 对象中,并使用 localStorage 在应用程序中传递它们。它的工作真的很棒。

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

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

4

2 回答 2

3

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

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

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

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

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

于 2013-09-17T22:33:54.833 回答
0

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

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

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

希望这可以帮助。

于 2013-09-17T22:33:59.440 回答