2016-06-16 17 views
0

我有一個字典(字符串,雙精度),我將其序列化爲本地存儲。無法將數據從JSON字符串添加到字典中<string,double>

首先讀回來,我將數據保存到字符串。現在,當我試圖反序列化字符串並添加到 詞典(串,雙),我得到的連接異常 -

「System.InvalidOperationException」與信息「無法轉換類型的 對象System.String 「到類型 'System.Collections.Generic.Dictionary`2 [System.String,System.Double]」'

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

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

string dataAfterRead; // contains data locally stored. 
dict = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(Dictionary(string, double>>(dataAfterRead); 

回答

1

Json.NET做到這一點...

string json = @"{""key1"":""value1"",""key2"":""value2""}"; 

Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(json); 

更多的例子:Serializing Collections with Json.NET

或 - 你可以做到這一點,因爲淨3.5 jsonserializer本身。

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參考。如果你找不到它,你的程序可能使用一個客戶端目標框架。使用「完整」目標框架。

對於您的情況下,它看起來就像這樣:

Dictionary<string, double> dict = new Dictionary<string, double>(); 
dict = JsonConvert.DeserializeObject<Dictionary<string, double>>(YourJson); 
+0

謝謝!有效 ! –

+0

不客氣,很高興幫助:) – user3378165

相關問題