C# System.Text.JsonでclassをJson形式の文字列に変換する
System.Text.Json
で、class
のインスタンスをJson形式の文字列(string
)に変換する方法を紹介します。
Json
を扱うライブラリといえばJson.NET
(Newtonsoft.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(オブジェクト)
の形で、変数chat
をJson
形式の文字列に変換します。
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形式の文字列をクラスオブジェクトに変換するで紹介しています。