JSON → Zod スキーマ
JSONデータからZodバリデーションスキーマを即座に生成。ネストオブジェクト・配列・nullable・省略可能プロパティに対応。ブラウザ完結。
使い方
- 左パネルに JSONデータ を貼り付けます(またはサンプルをクリック)。
- ルートスキーマ名を設定します(エクスポート定数と型名に使用)。
- 必要に応じてストリクトモードを有効にします。
- Zodスキーマを生成をクリックします。
- コピーをクリックしてプロジェクトに貼り付けます。
出力形式
完全なTypeScriptスニペットを出力します:
import { z } from “zod”— Zodインポートconst FooSchema = z.object({…})— スキーマ定義export type Foo = z.infer<typeof FooSchema>— 推論されたTypeScript型
主な用途
- APIバリデーション:APIレスポンス例からスキーマを生成し、実際のレスポンスを実行時に検証。
- フォームバリデーション:フォームのデータ形状をZodスキーマに変換してreact-hook-formなどで活用。
- 設定ファイル:JSONファイルから読み込む設定オブジェクトの定義と検証。
- 型安全性:TypeScriptと組み合わせて1つのスキーマから実行時検証と静的型推論を同時に取得。
FAQ
Zodとは何ですか?
ZodはTypeScriptファーストのスキーマ宣言・バリデーションライブラリです。データの形状をスキーマで定義し、実行時にデータを検証できます。APIレスポンス検証・フォームバリデーション・設定ファイル解析に広く使われています。
型の推論はどう行われますか?
各JSON値を検査します:文字列→z.string()、真偽値→z.boolean()、整数→z.number().int()、浮動小数点→z.number()、null→z.null()、配列→z.array()、オブジェクト→z.object()。オブジェクトの配列では、一部のアイテムにしか存在しないキーはoptionalとしてマークされます。
ストリクトモードとは何ですか?
ストリクトモードを有効にすると、すべてのz.object()に.strict()が追加されます。スキーマに定義されていない余分なキーを含む入力オブジェクトはZodに拒否されます。無効時は余分なキーが無視されます(Zodのデフォルト動作)。
生成されたスキーマはそのまま使えますか?
生成スキーマは良い出発点です。文字列・数値への.min()/.max()制約追加、nullableフィールドの.nullable().optional()への変更、ネストスキーマの個別定数への分割など、プロジェクトに合わせて調整することをお勧めします。
JSONデータはサーバーに送信されますか?
いいえ。すべての処理はブラウザ内で完結します。JSONデータがデバイス外に出ることはありません。