JSON 型ジェネレーターは、JSON サンプルを TypeScript・Rust・Kotlin・Python・JSON Schema の型定義に自動変換します。左側に JSON を貼り付け、出力モードを選択するとリアルタイムで右側に生成コードが表示されます。API レスポンスやデータモデルの型定義を手動で書く手間をなくすツールです。
出力モードのサンプル
以下の JSON 入力に対して:
{
"user": {
"id": 123,
"name": "Alice",
"roles": ["admin", "viewer"]
}
}
TypeScript (interface) はこのように出力されます:
export type Root = {
user: User;
};
export type User = {
id: number;
name: string;
roles: string[];
};
Rust は serde に依存する #[derive(Serialize, Deserialize)] 注釈付きの struct を生成します。Python は Pydantic v2 の BaseModel クラスを生成します。Kotlin (Jackson) は @JsonProperty アノテーション付きの data class を生成します。
8 種類の出力モード
- TypeScript (interface):オブジェクトごとに独立した
interface宣言 — 大規模プロジェクトに適する - TypeScript (単一型エイリアス):ネストされた型をインライン化した
type— すぐに使いたい場合に便利 - Rust:serde 注釈付き struct
- Kotlin (Jackson):
@JsonPropertydata class - Kotlin (kotlinx.serialization):
@Serializabledata class - Python (Pydantic):Pydantic v2
BaseModel - JSON Schema:API ドキュメント用の標準スキーマ形式
- Shape:ツール内部の型分析中間表現 — 推論のデバッグに役立つ
型推論の仕組みと限界
ツールは提供されたサンプルから静的に型を推論します:
- 数値は整数と浮動小数点を区別しません(TypeScript は
number、Rust は値の形に応じてi64/f64になります) nullの値はフィールドをオプションにします- 配列内の混在型はユニオン型を生成します
- 空の配列は
unknown[]を生成します
これらの推論の精度はサンプルの質に依存します。API がフィールドに null を返すことがあってもサンプルに常に値がある場合、生成された型はオプショナル性を見逃します。実際に API が返すデータの全範囲に照らして常に出力を確認してください。
高度なオプション
プロパティ名フォーマット:JSON の snake_case キーをターゲット言語の命名規則に変換します。camelCase・PascalCase・snake_case・SCREAMING_SNAKE_CASE・kebab-case に対応。
型名:ルート型の名前を設定します。デフォルトは Root です。コードベースに貼り付ける前に UserResponse のような意味のある名前に変更してください。
展開パス:JSON Pointer 構文(例:/items/-/data)を使って深くネストされたパスをトップレベルに昇格させます。- は配列のワイルドカードで、items[].data にデータが入っているページネーション API レスポンスで役立ちます。
追加プロパティを収集:TypeScript では [key: string]: unknown などのインデックスシグネチャを追加して、サンプルに含まれないフィールドも許容するようにします。