JSON→型・Schema生成(Schema Codegen)

JSON のサンプル・JSON Schema・OpenAPI を貼ると、10 種類の形式の型定義を生成します。複数のサンプルを並べると、省略されるキーや型の違いも推論します。データは端末の外へ送信しません。

端末内で処理・アップロードなしスマホ対応オフライン対応ベータ

ファイルや入力内容はお使いの端末(ブラウザ)の中だけで処理され、サーバーへは送信されません。

追加のライブラリは不要です。 サンプルからの推測です。実際の API のすべての値を保証するものではありません。

入力(JSON・JSON Schema・OpenAPI)
0 文字0 行
生成されたコード
左に JSON などを入れると、ここにコードが出ます。

左に JSON などを入れると、ここにコードが出ます。

使い方

  1. sample.json
    openapi.yaml

    元になるデータを入れる

  2. TypeScript・Zod ほか

    型やスキーマを生成

JSON やスキーマを入れて、10 種類の言語の型を生成する流れ
  1. 左の入力欄に JSON のサンプルデータ、JSON Schema、OpenAPI(JSON / YAML)のいずれかを貼り付けるか、「ファイルを開く」で読み込みます。「サンプル」ボタンで試せます。

  2. 「出力」で TypeScript・Zod・JSON Schema・Go・Python・Kotlin・Swift・C#・Rust・Java から選びます。結果は入力と同時に右側へ表示されます。

  3. 必要に応じて、ルートの型名、入れ子の型名の付け方、日付らしい文字列を日付型にするか、整数と小数を区別するかを切り替えます。TypeScript と Python は書き方(interface / type、dataclass / Pydantic / TypedDict)も選べます。

  4. キーの有無や型が違う複数の JSON を、改行で区切って続けて貼ると統合して推論します(JSON Lines も可)。すべてに無いキーは省略可になります。

  5. 「コピー」または「ダウンロード」で保存します。

できること

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 Lines)JSON SchemaOpenAPI 2.0 / 3.x(JSON / YAML).json.yaml.yml.jsonl

出力

TypeScriptZodJSON Schema(draft 2020-12)GoPythonKotlinSwiftC#RustJava

対応状況

機能対応補足
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 を左の入力欄に貼り付け、出力で「TypeScript」を選ぶと、interface(または type)が生成されます。入れ子のオブジェクトは別の型になり、配列は T[]、null を含む値は T | null になります。
JSON から Zod のスキーマを作れますか?
はい。出力で「Zod」を選ぶと、z.object を使ったスキーマと z.infer による型が生成されます。整数は z.number().int()、省略可のキーは .optional() になります。
サンプルが 1 つだけでも正しい型になりますか?
1 つのサンプルに現れた値からの推測なので、そのサンプルに無いキーや、null 以外の値が来る可能性は反映されません。型の違いやキーの有無がある複数のサンプルを並べると、より実際に近い型になります。
OpenAPI から型を作れますか?
OpenAPI(JSON / YAML)の components.schemas を読み、各スキーマを型として生成します。$ref・enum・nullable・allOf に対応します。paths のリクエスト・レスポンスを直接は読みません。
class や type などの予約語、記号を含むキーはどうなりますか?
各言語で有効な識別子に変換します(例: Rust の type は type_、Kotlin の class はバッククォート付き)。元のキーは json タグ・@SerialName・@JsonProperty・serde の rename などに残るため、JSON との対応は保たれます。
データはサーバーに送られますか?
いいえ。処理はすべてブラウザ内で行われ、入力内容が LIBRA Works のサーバーや第三者に送信されることはありません。

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 形式のパッチとしてコピー・保存でき、入力はブラウザの外へ出ません。

アップロードなし

最終更新: