[英]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
一个key
和value
在我的字典里,不仅连锁我有一个伟大的什么是价值阙拿不出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);
JsonConvert
: JsonConvert
方法属于导入包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.