JSON から C# クラスへ
JSON から C# のクラスを生成します。パスカルケースのプロパティ、[JsonPropertyName] 属性、null 許容参照型、List<T> コレクションに対応。無料で安全に使えます。
System.Text.Json の属性と null 許容参照型(string?、long?)を使います。
すべてブラウザ内で実行されます。データがアップロードされることはありま せん。
関連ツール
すべて表示JSON から C#とは?
JSON のサンプルを System.Text.Json 用の C# クラスに変換します。すべてのプロパティはパスカルケースで、元のキーを持つ [JsonPropertyName("…")] 属性が付き、サンプルに null や欠けている値がある場合は null 許容型になります。
JSON から C#の使い方
- JSON 入力 に JSON のサンプルを貼り付けます(サンプルを読み込む や ファイルを開く も使えます)。
- ルート型の名前 を設定します(既定は
Root)。 - 生成された C# のコードをコピーするか、ダウンロード してファイルとして保存します。
例
{"id":1,"name":"A","tags":["x"]} using System.Collections.Generic;
using System.Text.Json.Serialization;
public class Root
{
[JsonPropertyName("id")]
public long Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("tags")]
public List<string> Tags { get; set; } = new();
} JSON から C#を使うべき場面
.NET の HTTP クライアント、ASP.NET のモデル、テストデータに使います。Newtonsoft.Json では属性を [JsonProperty] に置き換え、金額には double を decimal に変更することを検討してください。
JSON から C#の仕組み
サンプルを再帰的にたどり、各位置で見つかった型を集めます。オブジェクトの配列は 1 つの型にまとめられ、一部の要素にないキーはオプショナル、どこかで null になるキーは null 許容になります。整数と小数が混在する場合は浮動小数点型になり、それ以外で型が混在する場合は動的な型にフォールバックします。入れ子のオブジェクトは名前付きの型になり(キーのパスカルケースで、配列のキーは単数形にします:orders → Order)、名前が衝突した場合は数字の接尾辞が付きます。C# の出力では、整数は long、小数は double、文字列は string、真偽値は bool、配列は List<T>、入れ子のオブジェクトは独自のクラス、動的な値は object? に対応します。null 許容またはオプショナルな値には ? が付き、null 非許容の文字列は string.Empty で、リストやオブジェクトは new() で初期化されるため、null 許容参照型を有効にしてもコードがきれいにコンパイルされます。
一般的な使用例
- HttpClient と System.Text.Json で API のレスポンスをデシリアライズする
- ASP.NET コントローラー用のリクエスト/レスポンスモデルを作る
- JSON の設定セクションをモデル化する
- Azure Functions のトリガー用のクラスを生成する
よくある質問
なぜすべてのプロパティに属性が付くのですか?
C# の名前が異なっていても正確な JSON のキーを保持できるため、命名ポリシーにかかわらずシリアライズの往復が成立します。
なぜ decimal ではなく double なのですか?
JSON には decimal 型がなく、double がパーサーの出力と一致します。通貨の値には decimal を使ってください。
Newtonsoft.Json でも使えますか?
はい。[JsonPropertyName] を [JsonProperty] に、using ディレクティブも置き換えれば使えます。