【C#】Dictionary(ディクショナリ)をJSON形式で保存する方法

2024年8月28日

C#のディクショナリをJSON形式で保存する手順を説明します。この資料では、System.Text.Jsonを使用した具体的なコード例を提供します。

前提条件

基本的なC#プログラミングの知識があること。

Jsonライブラリについて

System.Text.Jsonは、.NET Core 3.0以上および.NET 5以上では標準で組み込まれているため、NuGetパッケージを追加する必要がありません。しかし、.NET FrameworkプロジェクトでSystem.Text.Jsonを使用する場合は、デフォルトで含まれていないため、NuGetパッケージをインストールする必要があります。

まとめると

  • .NET Core 3.0以上および.NET 5以上: System.Text.Jsonは標準ライブラリに含まれているため、NuGetパッケージを追加する必要はありません。
  • .NET Framework: System.Text.Jsonを使用するには、NuGetからパッケージをインストールする必要があります。

手順

ディクショナリの作成

var dictionary = new Dictionary<string, int>
{
    { "Apple", 1 },
    { "Banana", 2 },
    { "Cherry", 3 }
};

ディクショナリをJSONにシリアライズ

string jsonString = JsonSerializer.Serialize(dictionary);

JSON文字列をファイルに保存

File.WriteAllText("dictionary.json", jsonString);

ファイルからJSONを読み込み、ディクショナリにデシリアライズ

string jsonFromFile = File.ReadAllText("dictionary.json");
var deserializedDictionary = JsonSerializer.Deserialize<Dictionary<string, int>>(jsonFromFile);

完全なコード例

using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;

class Program
{
    static void Main()
    {
        // ディクショナリの作成
        var dictionary = new Dictionary<string, int>
        {
            { "Apple", 1 },
            { "Banana", 2 },
            { "Cherry", 3 }
        };

        // ディクショナリをJSONにシリアライズ
        string jsonString = JsonSerializer.Serialize(dictionary);
        
        // JSONをファイルに保存
        File.WriteAllText("dictionary.json", jsonString);
        Console.WriteLine("JSONを保存しました: " + jsonString);

        // ファイルからJSONを読み込み、ディクショナリにデシリアライズ
        string jsonFromFile = File.ReadAllText("dictionary.json");
        var deserializedDictionary = JsonSerializer.Deserialize<Dictionary<string, int>>(jsonFromFile);
        
        // デシリアライズされたディクショナリの内容を表示
        foreach (var kvp in deserializedDictionary)
        {
            Console.WriteLine($"{kvp.Key}: {kvp.Value}");
        }
    }
}

まとめ

この技術資料では、C#のディクショナリをJSON形式で保存し、再びディクショナリに読み込む方法を説明しました。シンプルなサンプルコードを通じて、System.Text.Jsonの基本的な使い方を学ぶことができました。