无法将JSON字符串中的数据添加到Dictionary <string,double =“”>中

时间:2016-06-16 07:14:09

标签: c# dictionary

我有一个字典(字符串,双精度),我将其序列化为本地存储。

在首先阅读它时,我将数据保存为字符串。现在当我试图反序列化该字符串并添加到 字典(字符串,双),我得到例外 -

  

&#34; System.InvalidOperationException&#34;有信息&#34;无法转换   类型&#39; System.String&#39;的对象输入   &#39; System.Collections.Generic.Dictionary`2 [System.String,System.Double]&#39;&#34;

-$0

=============================================== ======================

Dictionary(string, double) dict = new Dictionary(string, double)();
string jsonDictData = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(dict);

1 个答案:

答案 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);