開発者 / 種類
JSONからZodスキーマへの変換ツール
JSONサンプルから、ネストしたオブジェクト、配列、オプショナルおよびnull許容フィールド、整数に対応したZodスキーマとTypeScript型を生成します。
JSONからZodスキーマへの変換ツール: サンプル内の各オブジェクトはz.objectスキーマになり、そこから推論した型とともにエクスポートされます。ネストしたオブジェクトには、それぞれ固有の名前付きスキーマが作成されます。配列内のオブジェクトは統合され、一部にしか存在しないキーには.optional()、nullになることがあるキーには.nullable()、整数には.int()が付加されます。生成されたスキーマは、生成元のサンプルをZodで解析して検証済みです。 サーバーへのファイルアップロードは一切なく、100%ブラウザ内でローカル実行します。
- カテゴリ
- 開発者ツール
- 実行回数
- ブラウザ内で
- コスト
- 無料 · 登録不要
- 提供状況
- すぐに使えます
完全にブラウザ内で実行します
TypeScript
import { z } from "zod";
export const AddressSchema = z.object({
city: z.string(),
zip_code: z.string(),
});
export type Address = z.infer<typeof AddressSchema>;
export const UserSchema = z.object({
id: z.number().int(),
user_name: z.string(),
avatar_url: z.string(),
score: z.number(),
tags: z.array(z.string()),
address: AddressSchema,
manager_id: z.number().int().nullable(),
nickname: z.string().optional(),
});
export type User = z.infer<typeof UserSchema>;
export const UserListSchema = z.array(UserSchema);
各オブジェクトにスキーマと推論された型が付与されます。一部のオブジェクトにないキーには.optional()、nullになることがあるキーには.nullable()、整数には.int()が付与されます。APIで保証されないルールは緩めてください。
スキーマを使用する
Schema.parse(data)を呼び出すとデータを検証し、不正なデータの場合は例外を発生させます。Schema.safeParse(data)を使うと、tryとcatchを使わずに確認できる結果を取得できます。z.inferからエクスポートされる型は、スキーマを編集しても常にスキーマと一致します。
コンパイル時の型だけが必要な場合は、JSON to TypeScriptで通常のインターフェースを作成できます。既存のJSON Schemaに対して検証するには、JSON Schema validatorを使用してください。
生成されたルールを厳密にする
サンプルからわかるのは、サンプルに含まれている内容だけです。そのため、スキーマは出発点として扱ってください。該当する文字列には.email()、.url()、.datetime()を追加し、値が固定されたフィールドにはz.enum([...])を使い、データに上限や下限がある場合は.min()または.max()を追加します。
使い方
- JSONサンプルを貼り付けます。いくつかの典型的なレコードを含む配列がおすすめです。
- トップレベルの型に名前を付けます。
- 生成されたスキーマをコピーし、実行時のデータ検証に使用します。
プライバシーと制限事項
JSONはブラウザ内で変換され、アップロードされることはありません。
関連ツール
よくある質問
TypeScriptのインターフェースではなくZodを使う理由は何ですか?
インターフェースはコードのコンパイル時に消えるため、実行時にデータを検証できません。Zodスキーマならデータを検証でき、z.inferで同じ型も取得できます。
整数には本当に.int()を付けるべきですか?
APIが整数を返すことを保証している場合に限ります。価格やスコアに小数が含まれる可能性があるなら、サンプルが整数だけでも.int()を削除してください。
日付やメールアドレスのような文字列にも対応していますか?
文字列はz.string()として型付けされます。データに応じて、.email()、.url()、日付チェックなどの追加の検証を設定してください。
無料ツール · ブラウザ内で · アカウント不要