zukucode
主にWEB関連の情報を技術メモとして発信しています。

C# System.Text.JsonでclassをJson形式の文字列に変換する

System.Text.Jsonで、classのインスタンスをJson形式の文字列(string)に変換する方法を紹介します。

Jsonを扱うライブラリといえばJson.NETNewtonsoft.Json)を使用することが多いですが、今回は.NET Core 3.0以降の標準機能であるSystem.Text.Jsonを使用します。

例えば以下のクラスがあるとします。

Chat.cs
public class Chat
{
    public Chat(int chatId, string chatName)
    {
        ChatId = chatId;
        ChatName = chatName;
    }

    public int ChatId { get; set; }
    public string ChatName { get; set; }
}

以下のようにインスタンスを作成し、この値をJson形式の文字列に変換します。

Chat.cs
var chat = new Chat(1, "チャット名");

JsonSerializer.Serialize(オブジェクト)の形で、変数chatJson形式の文字列に変換します。

using System.Text.Json;

var chat = new Chat(1, "チャット名");

string test = JsonSerializer.Serialize(chat); // 文字列に変換
Console.WriteLine(test);

// 出力結果
// {"ChatId":1,"ChatName":"\u30C1\u30E3\u30C3\u30C8\u540D"}

日本語文字列はエスケープされるため、そのまま出力はされませんが、Json形式の文字列に変換されていることが確認できます。

Json形式の文字列をオブジェクトに戻す方法はC# Json形式の文字列をクラスオブジェクトに変換するで紹介しています。


関連記事