UTILS.
100% ブラウザ内で完結
💠

JSON から C# クラスへ

JSON サンプルから System.Text.Json または Newtonsoft.Json 用の C# モデルクラスを生成します。PascalCase のプロパティと null 許容の値型付き。

出力

このツールについて

JSON から C# クラスへのツールは、貼り付けた JSON サンプルを C# のモデルクラスまたは record に変換するので、.NET 開発者は API レスポンスから数秒で DTO を組み立てられます。JSON を解析し、C# の型を再帰的に推論して、オブジェクトごとに 1 つの型を出力します。文字列は string、ISO 日時文字列は DateTime、整数は int または long、その他の数値は double、真偽値は bool、配列は List<T>、ネストしたオブジェクトは参照する親より前に宣言される独自の PascalCase クラスになります。

解析とコード生成はすべて JSON.parse と純粋な JavaScript を使ってブラウザ内でローカルに行われ、何もアップロードされません。プロパティは PascalCase の自動プロパティ public T Prop { get; set; } として出力されます。JSON キーが PascalCase のプロパティ名と異なる場合、System.Text.Json 用には [JsonPropertyName("originalKey")]、Newtonsoft 用には [JsonProperty("originalKey")] が追加され、必要な using ディレクティブだけが含まれます。

いずれかのサンプルで null になり得る値型プロパティは null 許容にされ(int?, double?, bool?, DateTime?)、string や List のような参照型はすでに null 許容です。シリアライザトグルは属性と using のスタイルを System.Text.Json(既定)と Newtonsoft.Json の間で切り替えます。形状トグルはクラス(既定)または record を出力します。コードはコピーするか .cs ファイルとしてダウンロードできます。

よくある質問

JSON の型は C# にどうマッピングされますか?
string は string、ISO 日時は DateTime、整数は int(int の範囲を超える場合は long)、非整数の数値は double、真偽値は bool、配列は List<T>、オブジェクトは名前付きクラスまたは record になります。null 許容の値型には末尾の ? 修飾子が付きます。
System.Text.Json と Newtonsoft のどちらですか?
シリアライザトグルでどちらかを選びます。これはプロパティ名が JSON キーと異なる場合に使われる属性(System.Text.Json 用の [JsonPropertyName("key")] または Newtonsoft 用の [JsonProperty("key")])と対応する using ディレクティブを制御します。
クラスの代わりに record を生成できますか?
はい。形状トグルは public class(既定)と public record を切り替え、同じ PascalCase の自動プロパティと JSON 属性を保つため、コードベースが好むスタイルを選べます。
JSON はプライベートに処理されますか?
はい。すべて JSON.parse と純粋な JavaScript を使ってブラウザ内で実行されます。サンプルは一切アップロードされないため、実際の API ペイロードを貼り付けても安全です。

その他のツール