JSON to Zod スキーマ生成(オンライン)
JSONサンプルからZodスキーマをブラウザ内で即座に生成。JSONは端末上に留まります。
JSONはすべてブラウザ内で解析・Zodスキーマに変換されるため、端末上に留まり、サーバーへ何もアップロードされません。
素のTypeScriptインターフェースが欲しいですか?JSON to TypeScriptをお試しください。
JSON to Zod について
このJSON to Zodコンバーターは、サンプルのJSONオブジェクトや配列を、すぐに使えるZodスキーマに数秒で変換します。実際のAPIレスポンスを貼り付けると各値を推論します。文字列は z.string()、整数は z.number().int()、小数は z.number()、真偽値は z.boolean()、nullは z.null() になります。配列は要素の形を統一した z.array() に、ネストしたオブジェクトはネストした z.object({...}) になり、スキーマがデータをそのまま反映します。バリデーターを手書きする代わりに手軽なZodスキーマ生成ツールが欲しいTypeScript開発者のために作られています。フォームバリデーションの組み込み、エンドポイントの型付け、見慣れないペイロードを探索しながらJSONからZodを生成する、といった場面でお使いください。ルートスキーマに名前を付け、必要に応じて推論型をエクスポートできます。すべてはブラウザ内でローカルに動作するため、貼り付けたJSONは端末上で処理され、サーバーへ何もアップロードされません。
機能
- あらゆるJSONオブジェクトや配列から名前付きのZodスキーマを生成
- サンプルから z.string()・z.number()・z.boolean()・z.null() を推論
- 整数を検出して z.number().int() を出力
- ネストしたオブジェクトをネストした z.object({...}) に変換
- 配列を z.array() で包み、混在する要素を z.union() に統一
- 必要に応じて z.infer<typeof Schema> で推論型をエクスポート
- ルートスキーマ名を変更でき、JSON解析エラーをインライン表示
- スキーマをコピーするか .ts ファイルとしてダウンロード
JSON to Zod の使い方
- JSONオブジェクトまたは配列を入力ボックスに貼り付けます。
- スキーマ名を設定するか、Schemaのままにします。
- 推論型のエクスポートを必要に応じてオン・オフします。
- 生成されたZodスキーマを確認し、コピーするか .ts ファイルとしてダウンロードします。
例
入力
{ "id": 1, "name": "Ada", "tags": ["a", "b"] }
出力
export const Schema = z.object({
id: z.number().int(),
name: z.string(),
tags: z.array(z.string()),
});
フラットなJSONオブジェクトが型付きの z.object スキーマになります。
よくあるエラーとトラブルシューティング
- 出力に行と列を伴うInvalid JSONのバナーが表示される。 — JSONに末尾のカンマ・シングルクォート・引用符のないキーなどの構文上の問題があります。報告された行と列で修正すれば、スキーマが再生成されます。
- フィールドが実際の要素型ではなく z.array(z.unknown()) として出力された。 — その配列はサンプルで空だったため、要素型を推論できませんでした。少なくとも1つ要素を含めれば、その形の z.array() を推論します。
- 整数が z.number().int() になったが、本当は素の z.number() が欲しかった。 — 整数はサンプルから z.number().int() として検出されます。そのフィールドが小数も取りうる場合は、生成された行を z.number() に編集してください。
- オブジェクトのプロパティが z.null() になった。 — そのキーのサンプル値がすべて null でした。実際の値を持つサンプルを与えるか、具体的な型がわかったら自分で .nullable() で包んでください。
よくある質問
- JSON to Zodジェネレーターは何をしますか。
- サンプルのJSONオブジェクトや配列を読み取り、各値に対して z.string()・z.number()・z.boolean()・z.null()・z.array()・z.object() を推論して、対応するZodスキーマをTypeScriptで生成します。結果はそのままコードベースに組み込めます。
- Zod v4に対応していますか。
- はい。スキーマは z.string()・z.number()・z.boolean()・z.null()・z.array()・z.object() というコアのコンストラクタを使います。これらはZod v3とv4で同一なので、zodから z をインポートすればどちらのバージョンでも動作します。
- オプショナルやnull許容のフィールドはどう扱われますか。
- サンプルで null のフィールドは z.null() になります。単一のサンプルではどのキーがオプショナルか判断できないため、自動では .optional() を付けません。フィールドが欠けうる、またはnullになりうる箇所には自分で .optional() や .nullable() を加えてください。
- 整数と小数はどう区別しますか。
- サンプル中の整数は z.number().int() に、小数部を持つ数値は z.number() になります。フィールドが両方を取りうる場合は、どちらも受け付けるよう生成された行を z.number() に変更してください。
- ネストしたオブジェクトや配列はどう変換されますか。
- ネストしたオブジェクトはネストした z.object({...}) になりスキーマがJSONを反映します。配列は要素スキーマを内側に持つ z.array() になります。空の配列は z.array(z.unknown()) になります。
- Zodスキーマを生成するとき、JSONはどこかに送信されますか。
- いいえ。JSON to Zodの変換は完全にブラウザ内で動作するため、貼り付けたデータはローカルで処理され、端末から外に出ることはありません。
関連ツール
すべての ArrayKit ツール