我有一个字典(字符串,双精度),我将其序列化为本地存储。
在首先阅读它时,我将数据保存为字符串。现在当我试图反序列化该字符串并添加到 字典(字符串,双),我得到例外 -
" System.InvalidOperationException"有信息"无法转换 类型' System.String'的对象输入 ' System.Collections.Generic.Dictionary`2 [System.String,System.Double]'"
-$0
=============================================== ======================
Dictionary(string, double) dict = new Dictionary(string, double)();
string jsonDictData = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(dict);
答案 0 :(得分:1)
Json.NET这样做......
string json = @"{""key1"":""value1"",""key2"":""value2""}";
Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
更多示例:Serializing Collections with Json.NET
或 - 你可以使用jsonserializer从net 3.5开始本机化。
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string,string>>(jsonText);
var place = dict["place"]; // "xyz"
以下是针对您的案例的简单教程:Quick JSON Serialization/Deserialization in C#
需要System.Web.Extensions
参考。如果找不到,那么您的程序可能正在使用客户端目标框架。使用&#34; Full&#34;目标框架。
对于您的情况,它将如下所示:
Dictionary<string, double> dict = new Dictionary<string, double>();
dict = JsonConvert.DeserializeObject<Dictionary<string, double>>(YourJson);