2016-06-16 3 views
0

ローカルに保存するためにシリアル化する辞書(string、double)があります。JSON文字列のデータをDictionary <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

OR- あなたはjsonserializerとネット3.5以降ネイティブにそれを行うことができます。 Quick JSON Serialization/Deserialization in C#

System.Web.Extensions参照が必要です。ここで

var jss = new JavaScriptSerializer(); 
var dict = jss.Deserialize<Dictionary<string,string>>(jsonText); 
var place = dict["place"]; // "xyz" 

は、あなたのケースのための簡単なチュートリアルです。見つからない場合は、おそらくクライアントターゲットフレームワークを使用しています。 「フル」ターゲットフレームワークを使用します。

あなたのケースの場合には、次のようになります。

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

感謝を!出来た ! –

+0

あなたを助けてくれることを歓迎します:) – user3378165

関連する問題