ホームに戻る
出典 :
C#でJSONを扱う方法。System.Text.Jsonの使い方とは? | .NETコラム
関連 :
Dictionary(連想配列) オブジェクトをXMLに保存
目次 :

JSON - Dictionaryの相互変換

準備 : アセンブリ System.Text.Json / System.Memory の参照追加

  1. ソリューション エクスプローラー上で、追加先プロジェクト下の「参照」を右クリック、
    「参照の追加」を選択する。
  2. 「アセンブリ」>「拡張」を選択し、「System.Text.Json」、「System.Memory」にチェックを入れる。

Dictionary からJSONへの変更(シリアライズ)

JsonSerializer を用いることで、string をキーに用いる Dictionary をJSONに変換できる。
// 元データ(Dictionary) // キー(TKey)は string に限定される var dic = new Dictionary<string, string> { // キー 値 { "Hyogo" , "Kobe" }, { "Shiga" , "Ohtsu" }, { "Ishikawa", "Kanazawa" }, { "Miyagi" , "Sendai" }, }; // dic をJSONに変換(シリアライズ) string jsonStr = System.Text.Json.JsonSerializer.Serialize(dic); System.Diagnostics.Debug.Print("{0}", jsonstr);
出力結果
{"Hyogo":"Kobe","Shiga":"Ohtsu","Ishikawa":"Kanazawa","Miyagi":"Sendai"}

JSONから Dictionary への変更(デシリアライズ)

JSONを Dictionary に変換する際には、Dictionary の完全な型を与える必要がある。
// 元データ(JSON文字列) string jsonStr = @"{""Hyogo"":""Kobe"",""Shiga"":""Ohtsu"",""Ishikawa"":""Kanazawa"",""Miyagi"":""Sendai""}"; // dic をJSONに変換(シリアライズ) // 戻り値となる Dictionary の型を指定する var dic = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, string>>(jsonStr);