使い方
- sample.jsonopenapi.yaml
元になるデータを入れる
- TypeScript・Zod ほか
型やスキーマを生成
左の入力欄に JSON のサンプルデータ、JSON Schema、OpenAPI(JSON / YAML)のいずれかを貼り付けるか、「ファイルを開く」で読み込みます。「サンプル」ボタンで試せます。
「出力」で TypeScript・Zod・JSON Schema・Go・Python・Kotlin・Swift・C#・Rust・Java から選びます。結果は入力と同時に右側へ表示されます。
必要に応じて、ルートの型名、入れ子の型名の付け方、日付らしい文字列を日付型にするか、整数と小数を区別するかを切り替えます。TypeScript と Python は書き方(interface / type、dataclass / Pydantic / TypedDict)も選べます。
キーの有無や型が違う複数の JSON を、改行で区切って続けて貼ると統合して推論します(JSON Lines も可)。すべてに無いキーは省略可になります。
「コピー」または「ダウンロード」で保存します。
できること
10 種類の出力
TypeScript(interface / type・readonly)、Zod、JSON Schema(draft 2020-12)、Go struct、Python(dataclass / Pydantic v2 / TypedDict)、Kotlin data class、Swift Codable、C# record、Rust serde、Java record を生成します。
複数サンプルの統合
複数の JSON を並べると、一部にしかないキーを省略可、整数と小数の混在を小数、null を含む値を null 許容、型が異なる値を共用体として推論します。空の配列は他のサンプルの型を消しません。
キー名を正しい識別子に
予約語(class・type など)、記号・空白・数字始まり・空文字・日本語のキーは、各言語で有効な識別子に変換し、元のキー名は json タグや @SerialName などに残します。重複する名前には番号を付けます。
スキーマと OpenAPI も入力に
JSON Schema と OpenAPI(2.0 / 3.x)の components.schemas を読み、$ref・enum・nullable・allOf・oneOf / anyOf に対応します。YAML でも読めます。外部ファイルの $ref は読みません。
日付・数値の判定
ISO 8601 の日付・日時らしい文字列を検出し、日付型にするか文字列のままにするかを選べます。整数・小数・64 ビット整数も判定します。
端末内で処理
推論と生成はブラウザ内の Web Worker で行い、入力は送信しません。巨大な入力でも画面が固まりにくく、30 秒で打ち切ります。
こんなときに
- API のレスポンス例から、TypeScript の型や Zod のスキーマを作りたい
- JSON から Go の struct(json タグ付き)や Python の dataclass・Pydantic モデルを作りたい
- OpenAPI の components.schemas から、Kotlin・Swift・C#・Rust・Java のモデルを作りたい
- JSON のサンプルから JSON Schema(draft 2020-12)を作って検証に使いたい
- 設定ファイルや保存データの形を、型として書き起こしたい
対応形式
入力
出力
対応状況
| 機能 | 対応 | 補足 |
|---|---|---|
| JSON のサンプルから型を推論 | 対応 | 複数サンプルの統合に対応 |
| JSON Schema・OpenAPI の components.schemas から生成 | 対応 | $ref・enum・allOf など |
| 日付らしい文字列の検出と日付型への切り替え | 対応 | — |
| キー名の識別子化(予約語・記号・数字始まり・空文字) | 対応 | 元のキーは属性・タグに保持 |
| 複数の型の混在(共用体) | 一部対応 | TypeScript・Zod・Python・JSON Schema は共用体。それ以外の言語は任意の JSON 値の型にします |
| Go の json タグに書けないキー(空・引用符・カンマなど) | 一部対応 | 該当フィールドは json:"-" にして警告します |
| 実際の API からのデータ取得 | 非対応 | 通信は行いません。レスポンスを貼り付けてください |
| 型の完全な保証 | 非対応 | サンプルからの推測です。出現しなかった値や型は反映されません |
| 外部ファイルの $ref・OpenAPI の paths から型を作る | 非対応 | components.schemas / $defs のみ読みます |
| オフラインでの利用 | 対応 | 一度開いたあとは通信なしで動作 |
制限・注意事項
- 入力は 5,000,000 文字までです。
- 入れ子は 100 階層まで、複数の JSON を並べる場合は 500 件までです。
- 型は 3,000 個、解析する値は 50 万個までです。上限を超えるとエラーになります。
- 処理が 30 秒で終わらない場合は打ち切ります。
- 数値が 19 桁以上の整数は小数(浮動小数点)として扱います。
- 文字列以外の enum は値の型だけを使い、description などの説明文は出力に含めません。
プライバシーと安全性
入力した JSON やスキーマ、読み込んだファイルは、お使いのブラウザの中だけで処理されます。サーバーへの送信・保存は行わないため、社内 API のレスポンス例でも安心して使えます。ページを閉じると内容は消去されます。
よくある質問
JSON から TypeScript の型を作るには?
JSON から Zod のスキーマを作れますか?
サンプルが 1 つだけでも正しい型になりますか?
OpenAPI から型を作れますか?
class や type などの予約語、記号を含むキーはどうなりますか?
データはサーバーに送られますか?
関連ツール
JSON 整形・検証(JSON Studio)
JSON を貼り付けるだけで整形・1 行化・構文チェック。エラーは「何行目の何が悪いか」まで表示し、コメントや末尾カンマは自動修復できます。データは端末の外へ送信しません。
OpenAPI ビューア・検証(OpenAPI Studio)
OpenAPI 3.0 / 3.1・Swagger 2.0 の定義を貼り付けるだけで、タグ別のエンドポイント一覧とスキーマのツリーを表示し、公式スキーマと照らして誤りを行・列つきで示します。API の呼び出しや外部ファイルの取得はせず、定義は端末の外へ送信しません。
YAML / TOML 検証・整形・変換(YAML / TOML Studio)
YAML・TOML・JSON を貼り付けるだけで構文チェック・整形・相互変換。エラーは行と列で示し、「no が false になる」などの型の落とし穴と、変換で失われるものを事前に警告します。データは端末の外へ送信しません。
CSV・JSON・XML・Excel 相互変換
CSV・TSV・JSON・JSON Lines・XML・Excel(.xlsx)を、貼り付けかファイル読み込みで相互に変換します。値は既定で文字列のままなので、先頭が 0 の郵便番号・電話番号や長い ID は変わりません。処理はすべてブラウザ内で行われ、データは送信されません。
curl解析・コード生成
Chrome や Firefox の「cURL としてコピー」を貼ると、メソッド・URL・ヘッダー・Cookie・本文を表にし、12 種類のコードへ変換します。リクエストは送らず、すべてブラウザの中で処理します。Authorization や Cookie は共有前に伏せられます。
テキスト・コード Diff
変更前と変更後を貼り付けるかファイルをドロップするだけで、追加・削除された行と、行の中で変わった単語まで色分けして表示します。結果は unified 形式のパッチとしてコピー・保存でき、入力はブラウザの外へ出ません。
最終更新: