← ツール一覧

開発

JSONから型定義を生成

JSONからTypeScript・Zod・Go・Python・Kotlinを生成。省略キー・混在型・nullを推論。

入力JSON・生成コードはブラウザ内だけで処理し、外部へ送信しません。JSON整形からの移動時だけ、同じタブ内で一時的に受け渡します。

JSON入力

0 B

オブジェクト・配列・単一の値に対応。配列内のオブジェクトを比較して、欠落キー・混在型・nullを推論します。

JSON整形を開く

生成する型定義

optional・union・nullableの違い

[{"id":1,"name":"A"},{"id":"2","name":null,"active":true}] を入力すると、TypeScriptでは id: number | string、name: string | null、active?: boolean のように推論します。キーの欠落とnullは別に判定します。配列の先頭だけではなく、上限内の全要素を確認します。

入力にないパターンは推測できません。文字列から日時・メール・enumを自動判定せず、"00123"のような数値風の文字列もstringとして扱います。空配列の要素型、nullしかない値などは追加のサンプルやAPI仕様で確認してください。生成結果は正式なAPI仕様・完全なバリデーションの保証ではありません。

各言語の出力と命名の扱い

TypeScriptはinterfaceまたはtype、ZodはZod 4のスキーマ、Goはjsonタグ付きの型、Pythonは3.11以上のTypedDictまたはdataclass、Kotlinはkotlinx.serialization用の型を生成します。ZodとKotlinのコードを使うプロジェクトでは、各ライブラリ等の設定が必要です。このWebツール自体は生成のための外部ライブラリやAPIを読み込みません。

「camelCaseへ変換」では元のキーと生成コードの対応に注意してください。TypeScript・TypedDictのキーを変えても、入力JSONを自動変換する処理にはなりません。Zodは元のキーで検証後に変換し、Go・Kotlinは元のキーに対応するタグ・注釈を付けます。dataclassのmetadataは標準での自動読み込み機能ではありません。名前の衝突・予約語・特殊なキーは出力の注意点を確認してください。

GoやKotlinには一般的なunion型がないため、混在型はanyやJsonElementなどへ置き換わる場合があります。GoのポインタやPythonのdataclassでは欠落とnullの区別が弱くなる場合があります。Python・Kotlinはオブジェクトをインラインの匿名型で表せないため、別の型へ切り出します。言語ごとの代替方法を注意欄に表示します。

仕様・制限とデータの扱い

標準JSONに対応し、コメント・末尾のカンマはエラーです。同じオブジェクト内の重複キーも、見落としや上書きを避けるためエラーにします。整数・小数の字句を確認して推論し、JavaScriptや各言語の表現範囲を超える数値には注意点を表示します。型を作る処理で入力JSONの数値を書き換えません。

入力はUTF-8で2 MiB、深さ64、値の総数10万、オブジェクトのキー数は配列から統合した型も含め2,000までです。生成コードは1形式2 MiB・合計8 MiBまで、処理は12秒を目安に中断できます。設定・入力を変えると古い結果を消去します。ファイルはUTF-8として検証して読み込みます。

入力・ファイル・生成結果はブラウザ内で処理し、サーバーへ送信・自動保存しません。JSON整形画面の「型にする」を押した場合だけ同じタブ内で一時保持し、移動先で読み出す際に削除します。受け渡しの有効期限は5分で、URLにJSONを含めません。ZIPには生成コードと注意事項を含め、入力JSONは含めません。

仕様の参考:TypeScript · Zod · Go encoding/json · Python TypedDict · Kotlin serialization

JSONから型定義を生成の使い方

  1. JSONを貼り付けるか、JSON整形画面から「型にする」で受け渡します。
  2. ルート型名、命名規則やネスト形式を選び、型定義を生成します。
  3. 言語タブで生成コードと注意点を確認し、コピー・保存して開発に利用します。
すべてのWebツールを見る →