C#-字典的JSON序列化
本文关键字:序列化 JSON 字典 C#- | 更新日期: 2023-09-27 17:59:01
我是C#开发的新手,
在我的项目中,我试图通过以下代码将Dictionary
实例序列化到Settings
存储中来保存它:
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);
}
}
当我尝试调用SetKeys
方法时,就会出现问题。抛出ThreadAbortException
:
mscorlib.dll中出现"System.Threading.ThreadAbortException"类型的首次机会异常评估需要一个线程临时运行。使用"监视"窗口执行评估。
你知道我该如何解决我的错误吗?
感谢
最好使用Json.NET,但如果您想使用JavaScriptSerializer
:
尝试:
var json = new JavaScriptSerializer().Serialize(keys.ToDictionary(item => item.Key.ToString(), item => item.Value.ToString()));
或者:
string jsonString = serializer.Serialize((object)keys);