JSON→コード変換ツール
JSON サンプルを TypeScript インターフェース、Go 構造体、Rust serde 構造体、Zod スキーマ、JSON Schema に変換します。
JSON→コード変換ツール — 代表的な JSON サンプルを貼り付けると、対象言語の型付きコードを即座に生成できます:TypeScript インターフェース、json タグ付きの Go 構造体、Rust serde 構造体、Zod スキーマ、draft-07 の JSON Schema。型はデータから直接推論されます。ネストしたオブジェクトは名前付きの型になり、配列は要素の型を推論し、すべての配列要素には現れないフィールドはオプショナルとして印が付きます。すべてブラウザ内で処理されるため、JSON がアップロードされることはありません。
JSON→コード変換ツールとは?
JSON→コードは、完全にブラウザ内で動作する無料の型ジェネレーターです。JSON サンプルを読み取り、選んだ言語で対応するデータモデルを書き出します。「変換先」メニューから対象を選び(TypeScript インターフェース、Go 構造体、Rust serde 構造体、Zod スキーマ、JSON Schema)、「ルート型名」でトップレベルの型に名前を付けます。推論エンジンは JSON をたどり、文字列・数値・真偽値・null をネイティブ型に対応付け、ネストしたオブジェクトをそれぞれ名前付きの型へ引き上げ、配列はその要素の型を採用し、一部の配列要素で欠けているキーはオプショナルになります。フロントエンドやバックエンドの開発者が、API レスポンスから DTO を作成したり、バリデーションスキーマを下書きしたり、定型コードを手書きせずにクライアントとサーバーの型をそろえたりするのに使います。
JSON→コード変換ツールの使い方
- 入力ボックスに代表的な JSON サンプルを貼り付けるか入力します。「サンプル」をクリックして例を読み込むこともできます。
- 「設定」を開き、「変換先」で対象を選びます:TypeScript、Go、Rust、Zod、JSON Schema。
- 「ルート型名」を設定して、トップレベルのインターフェース・構造体・スキーマの名前を指定します。
- 出力パネルで生成されたコードを確認します。JSON を編集したりオプションを変えたりすると自動で更新されます。
- 「型」の統計で推論された名前付き型の数を確認し、「コピー」をクリックして結果を取得します。
使用例
オブジェクトを TypeScript インターフェースに
入力
{ "id": 1, "name": "Ada", "active": true }出力
export interface Root {
id: number;
name: string;
active: boolean;
}ネストしたオブジェクトを Go 構造体に
入力
{ "user": { "age": 30 } }出力
type User struct {
Age float64 `json:"age"`
}
type Root struct {
User User `json:"user"`
}キーの欠けた配列を Zod スキーマに
[{"a":1,"b":2},{"a":3}] のような配列を貼り付け、「変換先」を Zod に切り替えます。2 番目の要素に b がないため、ジェネレーターは推論された z.object 内で b を .optional() として印を付け、スキーマは両方の形を受け入れます。
よくある質問
- 私の JSON はどこかにアップロードされますか?
- いいえ。解析とコード生成は、内蔵の推論エンジンを使ってすべてブラウザ内で行われます。JSON が端末から外に出ることはなく、オフラインでも動作します。
- どの変換先に対応していますか?
- TypeScript インターフェース、Go 構造体(json タグ付き、オプショナルなフィールドには omitempty)、Rust serde 構造体(Serialize/Deserialize の derive 付き、フィールド名が変わる場合は rename)、Zod スキーマ、draft-07 の JSON Schema です。本ツールはサンプルから忠実に推論できるものだけを生成します。
- オプショナルなフィールドはどう決まりますか?
- サンプルから決まります。配列がオブジェクトを含み、その一部であるキーが欠けている場合、そのキーはオプショナルと推論されます。それ以外は、サンプルに存在するすべてのキーが必須として扱われます。
- 数値・null・混在型はどうなりますか?
- 数値は各言語の浮動小数点型(number、float64、f64)に対応し、null は対象ごとに nullable または値型に対応します。サンプルごとに異なる型を持つフィールドは、推測せずに寛容な型(unknown、interface{}、serde_json::Value)にフォールバックします。
- なぜ出力が空、またはエラーになるのですか?
- 入力は有効な JSON である必要があります。解析に失敗した場合、可能なら行と列を添えてエラーを表示します。指摘された箇所を直せば、コードは即座に再生成されます。
関連ツール
Base32 / Base58 エンコード / デコード
テキストを Base32(RFC 4648)または Base58(ビットコイン用文字)にエンコードし、元に戻すこともできます(UTF-8 対応、ブラウザ内処理)。
Base64 エンコード / デコード
テキストを Base64 にエンコード、または Base64 をテキストにデコードします(UTF-8 対応)。
大文字小文字変換・カウントツール
テキストの大文字・小文字を変更し、文字数、単語数、行数をカウントします。
コード整形・圧縮ツール
HTML・CSS・JavaScript をブラウザ内で瞬時に整形または圧縮し、2スペース・4スペース・タブのインデントに対応します。