字典的C#-JSON序列化
我是C#development的新手 在我的项目中,我尝试将字典的C#-JSON序列化,c#,C#,我是C#development的新手 在我的项目中,我尝试将字典实例序列化到设置存储中,并使用以下代码保存该实例: private static Dictionary<string, Dictionary<int, string>> GetKeys() { Dictionary<string, Dictionary<int, string>> keys = null; try { JavaScriptSerializ
字典
实例序列化到设置
存储中,并使用以下代码保存该实例:
private static Dictionary<string, Dictionary<int, string>> GetKeys()
{
Dictionary<string, Dictionary<int, string>> keys = null;
try {
JavaScriptSerializer ser = new JavaScriptSerializer();
keys = ser.Deserialize<Dictionary<string, Dictionary<int, string>>>(Settings.Default.keys);
}
catch (Exception e)
{
Debug.Print(e.Message);
}
return keys;
}
private static void SetKeys(Dictionary<string, Dictionary<int, string>> keys)
{
try
{
JavaScriptSerializer ser = new JavaScriptSerializer();
Settings.Default.keys = ser.Serialize(keys);
}
catch (Exception e)
{
Debug.Print(e.Message);
}
}
private静态字典GetKeys()
{
字典键=空;
试一试{
JavaScriptSerializer ser=新的JavaScriptSerializer();
keys=ser.Deserialize(Settings.Default.keys);
}
捕获(例外e)
{
调试.打印(e.Message);
}
返回键;
}
专用静态无效设置键(字典键)
{
尝试
{
JavaScriptSerializer ser=新的JavaScriptSerializer();
Settings.Default.keys=ser.Serialize(键);
}
捕获(例外e)
{
调试.打印(e.Message);
}
}
当我尝试调用SetKeys
方法时,就会出现问题。抛出ThreadAbortException
:
mscorlib.dll中首次出现类型为“System.Threading.ThreadAbortException”的异常
评估需要临时运行线程。使用“监视”窗口执行评估
你知道我该如何解决我的错误吗
感谢您更好地使用,但是如果您想使用JavaScriptSerializer
:
尝试:
或:
您可能想看看这个,序列化/反序列化词典始终是一个问题源。我建议放弃字典,创建自己的配置集合,因为这是一个键控集合,也是一个易于序列化/反序列化的集合。Json.NET解决了我的问题。谢谢你的帮助!
var json = new JavaScriptSerializer().Serialize(keys.ToDictionary(item => item.Key.ToString(), item => item.Value.ToString()));
string jsonString = serializer.Serialize((object)keys);