繁体   English   中英

在字典C#中转换JSON

[英]Converting JSON in Dictionary C#

我是C#和ASP.NET的初学者,但是我有一些疑问。

它具有一个序列化的字典que,它与一起存储在数据库中:

    var json = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(filters.ToDictionary(item => item.Key.ToString(), item => item.Value.ToString()));

将此字典序列化后,它会存储在数据库中,因为我将在视图(asp.net中的PopUp)中使用信息。

我的困难是反序列化数据库中的这些值以将它们放回字典中。 我试过了:

用于获取数据库中信息的代码:

<asp:Literal ID="lblFilter" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "FilterJson")%> ' />

我收集背后代码中信息的唯一方法是:

object filter = new System.Web.Script.Serialization.JavaScriptSerializer().DeserializeObject(((Literal)e.Item.FindControl("lblFilter")).Text);

但是,我不能将其与迭代一起使用,甚至不能与Dictionary一起使用。 与Dictionary一起使用以下代码:

System.Collections.Generic.Dictionary<string, string> filters = new System.Collections.Generic.Dictionary<string, string>();

那是当我需要.Add一个keyvalue在我的字典里,不仅连锁我有一个伟大的什么是价值阙拿不出Literal

((Literal)e.Item.FindControl("lblFilter")).Text

如何正确转换? 谢谢。

要反序列化JSON字符串,您可以轻松使用以下代码:

Dictionary<object, object> filters = new JavaScriptSerializer().Deserialize<Dictionary<object, object>>(yourJSONString);

您必须使用object而不是string ,因为如果您的JSON字符串中有一个列表,则会出现错误。

解决了:

无论项目中的软件包如何,我都使用框架Json.NET。

using Newtonsoft.Json;

获取.aspx值:

string serialize = @"" + ((Literal)e.Item.FindControl("lblFilter")).Text

为了反序列化,我使用下面的代码:

Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(serialize);

JsonConvertJsonConvert方法属于导入包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM