ユーティリティ

[C#] jsonファイルをデータオブジェクトに変換する

2021年7月28日

jsonファイルを読み込んで、データオブジェクトに変換するサンプルです。

サンプル

例)test.jsonを読み込んでデータオブジェクトに変換する

test.jsonの中身は以下の通りです。

(C:¥test.json)

[
{"Id": 101, "Name": "伊藤", "Busho": "営業部"},
{"Id": 102, "Name": "鈴木", "Busho": "総務部"},
{"Id": 103, "Name": "田中", "Busho": "開発部"}
]

jsonに対応するデータクラスを定義しておきます。

//社員クラス
class Shain
{
  public int Id { get; set; }
  public string Name { get; set; }
  public string Busho { get; set; }
}

実処理

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

//test.jsonをUTF-8として読み込む
StreamReader sr =
 new StreamReader(@"C:¥test.json", Encoding.GetEncoding("utf-8"));
string json = sr.ReadToEnd();
sr.Close();

//読み込んだjsonをList<Shain>型に変換する
var list = JsonSerializer.Deserialize<List<Shain>>(json);

//※Shainの配列にしたい場合はこんな感じ
var list = JsonSerializer.Deserialize<Shain[]>(json);

生成されたデータオブジェクト

["Id": 101, "Name": "伊藤", "Busho": "営業部"],
["Id": 102, "Name": "鈴木", "Busho": "総務部"],
["Id": 103, "Name": "田中", "Busho": "開発部"]

備考

  • Dictionaryをjson文字列に変換したい場合は、System.Text.Json.JsonSerializer.Deserializeを使用すると簡単です。
  • データオブジェクトをjsonファイルに変換したい場合は、以下関連記事をご覧ください。

関連記事

-ユーティリティ
-