JSON to C# クラス

JSONからC#のクラス定義を自動生成します。名前空間・JsonPropertyName・Nullable型・record構文対応。

入力データはブラウザ内で処理されます
データはサーバーへ送信されません

変換ツール

ルートクラス名
名前空間
インデント:

またはファイルをドラッグ&ドロップ

JSON to C# クラス変換ツールとは?

APIレスポンスや設定ファイルのJSONから、C#のクラス定義を自動生成するツールです。

ネストしたオブジェクトは個別のクラスとして展開され、配列は List<T> として型付けされます。[JsonPropertyName] アノテーション、Nullable参照型、record 構文など、モダンなC#開発で求められるオプションも揃えており、ASP.NET CoreやMAUIなどのプロジェクトにすぐ組み込めるコードを生成できます。

使い方

  1. 左側にJSONを貼り付けると、右側にC#のクラス定義が即座に生成されます。「サンプル」ボタンで動作を確認できます。
  2. 「ルートクラス名」に生成するクラスの名前を入力します(デフォルト: Root)。
  3. 「名前空間」にC#の名前空間を入力します(例: MyApp.Models)。
  4. 「[JsonPropertyName] を使う」を有効にすると、JSONキーとプロパティ名が異なる場合に `[JsonPropertyName]` 属性が付与されます(System.Text.Json)。
  5. 「null許容型(?)を使う」を有効にすると、プロパティに `?` が付いたnull許容型として生成されます。
  6. 「record を使う」を有効にすると、`class` の代わりに `record` 構文で出力されます(プロパティは `init` になります)。

よくある質問

ネストしたオブジェクトはどう変換されますか?

ネストしたオブジェクトは個別のC#クラスとして自動生成され、親クラスのプロパティから参照されます。依存関係の順番で出力されるため、そのままC#ファイルに貼り付けて使えます。

配列はどう変換されますか?

配列は `List<T>` 型として生成されます。オブジェクトの配列の場合は、すべての要素のキーをマージして1つのクラスを生成し `List<クラス名>` として出力します。

record と class の違いは何ですか?

record を使う場合、プロパティは `{ get; init; }` になります。C# 9以降のプロジェクトで不変なデータモデルを扱う場合に適しています。

Newtonsoft.Json(Json.NET)は使えますか?

このツールは System.Text.Json の `[JsonPropertyName]` に対応しています。Newtonsoft.Json の `[JsonProperty]` が必要な場合は、生成後に属性名を変更してください。