ユーティリティ

[C#] データオブジェクトをjson文字列に変換する

2021年7月26日

データオブジェクトをjson文字列に変換するサンプルです。
日本語を扱う場合は注意が必要です。

サンプル

例)データオブジェクトをjsonに変換する

using System.Text.Json;

//データクラスのListを生成する
class Shain
{
  public int Id { get; set; }
  public string Name { get; set; }
  public string Busho { get; set; }
}

var list = new List<Shain>()
{
  new Shain(){Id=101, Name="Ito", Busho="EigyoBu" },
  new Shain(){Id=102, Name="Suzuki", Busho="SomuBu" },
  new Shain(){Id=103, Name="Tanaka", Busho="KaihatsuBu" }
};

//jsonに変換する
string json = JsonSerializer.Serialize(list);

(生成されたjson)
[
{"Id": 101, "Name": "Ito", "Busho": "EigyoBu"},
{"Id": 102, "Name": "Suzuki", "Busho": "SomuBu"},
{"Id": 103, "Name": "Tanaka", "Busho": "KaihatsuBu"}
]

サンプル(日本語の場合)

日本語を扱う場合は、エンコードを指定する必要があります。
エンコードしないと、例えば"営業部"は"\u55B6\u696D\u90E8"のような文字になってしまいます。

例)データオブジェクトをjsonに変換する(日本語を含む)

using System.Text.Json;
using System.Text.Encodings.Web;
using System.Text.Unicode;

//Encode設定
var op = new JsonSerializerOptions
{
  Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
  WriteIndented = true
};

//データクラスのListを生成する
class Shain
{
  public int Id { get; set; }
  public string Name { get; set; }
  public string Busho { get; set; }
}

var list = new List<Shain>()
{
  new Shain(){Id=101, Name="伊藤", Busho="営業部" },
  new Shain(){Id=102, Name="鈴木", Busho="総務部" },
  new Shain(){Id=103, Name="田中", Busho="開発部" }
};

//jsonに変換する
string json = JsonSerializer.Serialize(list, op);

(生成されたjson)
[
{"Id": 101, "Name": "伊藤", "Busho": "営業部"},
{"Id": 102, "Name": "鈴木", "Busho": "総務部"},
{"Id": 103, "Name": "田中", "Busho": "開発部"}
]

備考

  • データオブジェクトをjson文字列に変換したい場合は、System.Text.Json.JsonSerializer.Serializeを使用すると簡単です。
  • 日本語(Unicode文字)を扱う場合はエンコードの指定が必要な点にご注意ください。
  • json文字列をデータオブジェクトに変換したい場合は、以下記事をご覧ください。

関連記事

-ユーティリティ
-