JSON → TypeScript / C# 型 変換
JSON サンプルから TypeScript interface や C# クラスを生成し、ネストした型と optional・nullable のフィールドを推論します。
読み込み中…
使い方
- JSON サンプル(API レスポンスなど)を入力欄に貼り付けます。
- 「出力」で TypeScript interface か C# class を選びます。
- 「ルート型の名前」を決めます(空なら Root)。JSON が配列の場合、要素は名前の後に Item を付けた型(例: RootItem)になります。
- 入力に合わせてコードが更新されます。ネストしたオブジェクトはキー名を PascalCase にした別の型になり、配列内のオブジェクトは単数形の名前(items → Item)になります。
- 「コピー」でコードをコピーします。正しい JSON でない場合は「正しい JSON ではありません」とパーサーのメッセージが表示されます。
よくある質問
- 入力した JSON はサーバーに送信されますか?
- いいえ。ブラウザー内で型を生成します。
- optional と nullable はどう決まりますか?
- 同じ配列内のオブジェクトは1つの型にまとめます。一部のオブジェクトにしかないフィールドは optional(TypeScript では名前の後に ?、C# では nullable 型)、サンプルのどこかで null のフィールドは TypeScript で | null、C# で ? が付きます。
- 数値はどの型になりますか?
- TypeScript ではすべて number です。C# では整数は int、int の範囲(±2147483647)を超える整数は long、小数を含むと double になり、1つのフィールドに混在する場合は最も広い型を使います。JSON の 1.0 は整数として扱われます。
- 型が混在する配列、空の配列、null だけのフィールドは?
- TypeScript では種類の違う値を string | number のようなユニオンにするため、混在した配列は (string | number)[] になります。C# にはユニオンがないので object を使います。空の配列は unknown[] / List<object>、常に null のフィールドは null / object? になります。
- C# のプロパティ名はどう決まりますか?
- JSON のキーを PascalCase に変換します(user_id → UserId)。プロパティ名がキーと異なる場合は System.Text.Json 用の [JsonPropertyName] 属性で元のキーを残します。TypeScript では識別子として使えないキーを引用符で囲みます。