JSONからC#クラス生成ツール
JSONサンプルからC#のクラスとプロパティ定義を生成する。
ツールを開いて確認する →PRACTICAL GUIDE / JSON・API開発
サンプルJSONだけでは判断できないnullable、数値型、日時、配列の型設計を解説します。
最終確認日:2026年8月22日 確認者:UtilityBox運営者
生成されたC#クラスをそのまま使い、別パターンのAPIレスポンスでデシリアライズに失敗する問題を防ぎます。
JSONからC#クラスを生成すると、最初の型定義は数秒で作れます。しかし、サンプル1件からrequired、nullable、数値の最大桁、日時のタイムゾーンまで正確に推測することはできません。生成結果は「コンパイル可能な雛形」として扱うのが安全です。
特に外部APIでは、通常時に存在する項目がエラー時だけ欠落したり、空配列・nullへ変わったりします。複数のレスポンス例を比較し、System.Text.Jsonや利用中のシリアライザー設定に合わせて調整します。
WORKED EXAMPLE
通常レスポンスではdisplayNameが必ず入っているように見えても、退会済みユーザーではnullになるAPIを想定します。
{
"id": "9007199254740993",
"displayName": "Yamada",
"lastLogin": "2026-08-17T08:00:00+09:00"
}public sealed class UserResponse
{
public string Id { get; init; } = string.Empty;
public string? DisplayName { get; init; }
public DateTimeOffset? LastLogin { get; init; }
}JSONに値が入っていることと、その項目が常に必須であることは同じではありません。正常、空データ、エラー、旧バージョンなど複数レスポンスを確認します。
nullable reference typesを有効にしている場合、生成後にstringとstring?を明示的に見直すと、欠損をコンパイル時の設計へ反映できます。
ID、郵便番号、注文番号などは数字だけでも算術計算しません。先頭ゼロや将来の桁数増加を維持する必要があるため、API仕様が文字列ならstringを維持します。
金額や比率はdoubleではなくdecimalが適する場合があります。用途によって型を選び、生成結果を自動的な正解と扱わないことが重要です。
ISO 8601文字列にZや+09:00が含まれる場合、タイムゾーン情報を保持する必要があるか確認します。サーバー時刻、画面表示時刻、保存時刻のどこで変換するかを決めます。
DateTimeとDateTimeOffsetの選択はシステム設計に依存するため、単一サンプルから自動決定せず既存コードの方針へ合わせます。
複数レスポンス例とAPI仕様書を用意します。
生成クラスを雛形として、nullableと型を手動調整します。
欠損、null、空配列、大きな数値のテストを追加します。
JSONサンプルからC#のクラスとプロパティ定義を生成する。
ツールを開いて確認する →JSONサンプルからJSON Schemaの雛形を生成する。
ツールを開いて確認する →JSONを整形・圧縮し、構文エラーを確認します。
ツールを開いて確認する →ツールの操作方法だけでなく、結果を誤用しないための具体例、確認項目、処理の限界、元データを保管すべき場面まで記載します。原因・手順・完了判定・限界を運営者が確認したガイドだけを一覧と検索対象へ掲載します。