JSON to Zod スキーマコンバーター
JSONを貼り付けるだけで、すぐ使えるZodスキーマを即座に生成。100%ブラウザ内で処理。z.number().int()、.optional()、.nullable()を正しく生成し、z.infer型も付属。無料。
オプション
Zodスキーマとは?
Zodスキーマは、値の形状をTypeScriptファーストで記述したもので、実行時にデータを検証し、コンパイル時に静的な型を推論します。JSONサンプルから生成すれば、APIレスポンスやフォーム、設定ファイルのために検証のボイラープレートを手書きする必要がなくなります。このZodスキーマジェネレーターは、正しい型を推論し、存在しないキーを.optional()、null値を.nullable()としてマークし、z.infer型を渡します — すべて100%ブラウザ内で行われます。
サンプル
APIレスポンス
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} import { z } from "zod";
export const RootSchema = z.object({
id: z.number().int(),
name: z.string(),
email: z.string(),
active: z.boolean(),
roles: z.array(z.string()),
});
export type Root = z.infer<typeof RootSchema>;
典型的なRESTペイロードは、すぐ使えるZodスキーマになります。整数はz.number().int()と推論され、roles配列はz.array(z.string())になります。z.infer型も無料で付いてきます。
ネストオブジェクト
{"repo":"zod","owner":{"login":"colinhacks","id":100}} import { z } from "zod";
export const OwnerSchema = z.object({
login: z.string(),
id: z.number().int(),
});
export const RootSchema = z.object({
repo: z.string(),
owner: OwnerSchema,
});
export type Root = z.infer<typeof RootSchema>;
ネストされたオブジェクトは、フィールドから参照される独自の名前付きスキーマ(OwnerSchema)になります。子スキーマはそれを使う親より前に宣言され、同一の形状は一度だけ宣言されて再利用されます。
オブジェクトの配列(オプショナルフィールド)
{"users":[{"id":1,"nick":"x"},{"id":2}]} import { z } from "zod";
export const UserSchema = z.object({
id: z.number().int(),
nick: z.string().optional(),
});
export const RootSchema = z.object({
users: z.array(UserSchema),
});
export type Root = z.infer<typeof RootSchema>;
オブジェクトの配列は1つの要素スキーマにマージされます。一部の項目に存在しないキーは.optional()になるため、そのキーがなくても解析は成功します。
Nullableフィールドと数値の統一
{"items":[{"sku":"A1","discount":0.1},{"sku":"A2","discount":null}]} import { z } from "zod";
export const ItemSchema = z.object({
sku: z.string(),
discount: z.number().nullable(),
});
export const RootSchema = z.object({
items: z.array(ItemSchema),
});
export type Root = z.infer<typeof RootSchema>;
一部のサンプルではnullで他のサンプルでは型が付くフィールドは.nullable()になります。0.1には小数点があるため、数値はz.number().int()ではなくz.number()に統一されます。
JSONをZodに変換する方法
- 1
JSONを貼り付ける
JSONオブジェクト・配列・APIレスポンスを入力欄に入れてください。変換は即座に始まります。
- 2
出力を調整する
ルートスキーマの名前を変更し、import行、z.infer型、exportキーワードを切り替えて、あなたのプロジェクトのスタイルに合わせてください。
- 3
コピーまたはダウンロード
生成されたZodスキーマをワンクリックで取得し、検証層にそのまま貼り付けてください。
Common Use Cases
- APIレスポンスの検証
- サンプルのRESTやGraphQLレスポンスをZodスキーマに変換し、fetch境界で解析することで、不正なデータがアプリに漏れ込む代わりに明確なエラーで即座に失敗します。
- 型安全なフォームと入力
- フォームやクエリ入力のスキーマを生成し、UIとハンドラー全体でz.infer型を再利用して、エンドツーエンドの型安全性を実現します。
- tRPCとAIツールのスキーマ
- サンプルペイロードから、tRPCプロシージャやAI構造化出力ツールの入力・出力スキーマを手書きせずにブートストラップします。
変換の仕組み
- 構造推論
- 各オブジェクトは名前付きスキーマになります。同一の形状は一度だけ宣言されて再利用されます。オブジェクトの配列はキーごとにマージされ、一部の項目に存在しないキーは.optional()になります。
- 正しい型マッピング
- 整数はz.number().int()に、小数はz.number()にマッピングされます。文字列・真偽値・nullはそれぞれz.string()・z.boolean()・z.null()にマッピングされ、プリミティブが混在する配列はz.union()になります。
- TypeScript型を同梱
- ルートスキーマにz.infer型エイリアスが出力されるため、スキーマが唯一の情報源であり続け、型が検証からずれることはありません。
- 100%クライアントサイド
- 解析と生成はネットワーク通信なしでブラウザ内で実行されるため、データはプライベートに保たれます。
クリーンなZodスキーマのためのヒント
- ルートスキーマに名前を付ける
- 読みやすく自己文書化されたコードのために、デフォルトのRootではなく、UserやApiResponseのような意味のあるルート名を設定してください。
- z.unknown()とユニオンを精緻化する
- 空または混在した配列はz.unknown()や広範なz.union()を生成します。より充実した代表的なサンプルを貼り付けてツールに正確な型を推論させ、曖昧なまま残るものを絞り込んでください。
- 境界で検証する
- 信頼できないデータが入る場所 — APIレスポンス、フォーム入力、Webhook — でsafeParse()を呼び、不正なデータがアプリケーションロジックに届く前に捕捉してください。
よくある質問
JSONをZodスキーマに変換するには?
JSON to ZodとJSON Schema to Zodの違いは何ですか?
スキーマからTypeScriptの型を得るには?
オプショナルフィールドやnullフィールドはどう扱われますか?
どの数値型を生成しますか?
出力はZod 3とZod 4で動作しますか?
生成されたスキーマでデータを検証するには?
配列や混在した型はどう扱われますか?
私のJSONデータはプライベートで安全ですか?
このツールは無料ですか?アカウントは必要ですか?
関連ツール
すべてのツールを見る →Base64エンコーダー&デコーダー
エンコーディングとフォーマット
Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。
Base64 画像変換ツール
エンコーディングとフォーマット
Base64 文字列やデータURIをブラウザ上で画像に戻します。プレビューし、寸法と MIME を確認して、PNG・JPG・GIF・SVG としてダウンロード。アップロード不要。
CSV to JSON 変換ツール
エンコーディングとフォーマット
CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。
.env から JSON への変換ツール
エンコーディングとフォーマット
.env ファイルを貼り付けるだけで即座に JSON に変換。データベースのパスワードや API キー、トークンはブラウザから一切出ません。100% プライベート、アップロード不要、無料の dotenv パーサー。
無料HTMLエンティティデコーダー — HTMLをアンエスケープ
エンコーディングとフォーマット
HTMLエンティティをデコードし、HTMLをオンラインでアンエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の参照を文字に戻します。アップロードは一切なし。
無料HTMLエンティティエンコーダー — HTMLをエスケープ
エンコーディングとフォーマット
HTMLエンティティをエンコードし、特殊文字(< > & " ')をオンラインでエスケープ。無料・登録不要・100%ブラウザ内処理。名前付き・10進・16進の出力に対応、アップロードは一切なし。