JSONからZodスキーマ
JSON to Zod Schema
JSONの実例からZodのスキーマを組み立て、nullable・optional・列挙を推論します。
例のJSON文書をZodのスキーマに変えます。TypeScriptの型では得られない実行時の検査がこちらです。出力は宣言順に並んだ`z.object`の定数と、ルートに対する推論型なので、一度貼り付ければパーサと型の両方が手に入ります。
サンプルJSON
.json ファイルを置く
このタブの中で読みます。アップロードはしません。
手元にある要素を全部入れてください。レコードが一つ増えるたびに推論が絞り込まれます。どれか一つに無いフィールドこそが、省略可能である根拠です。
TypeScript
使い方
手元にあるレコードをできるだけ多く貼り付けます
配列は先頭の要素だけでなく、すべての要素を読んで合わせます。レコードが3件あれば1件のときよりはるかに多くのことが分かります。どれか1件に欠けているという事実こそが、そのフィールドを省略可能にする根拠だからです。
ルートの型に名前を付けます
入れ子のオブジェクトは、それを保持しているキーの名前を取ります。配列なら単数形になるので、`users`からは`User`ができます。自分で名前を決める必要があるのはルートだけです。
出力の下にある件数を読みます
型の数、省略可能なフィールドの数、ユニオンの数、そして合わせたレコードの数が出ます。ユニオンが0より大きければ、あるフィールドが標本の中で違う種類の値を持っていたということなので、結果をコードベースに貼り付ける前に一度見ておく価値があります。
貼り付けて、それでパースします
ブロックは子が先になるように出力されます。Zodではこれが効いてきます。あとで宣言される定数を参照する`z.object`は、型チェックの失敗ではなくimportの時点で例外になるからです。出てきた順序はそのままにしてください。
よくある質問
スキーマがAPIの仕様と合わないのですが
仕様ではなく標本を説明しているからです。省略可能と付いたフィールドは、貼り付けたレコードのどれかに無かっただけです。必須と出たフィールドも、十分な数を見ていないAPIでは実際には省略可能かもしれません。手で締め直すための下書きとして扱ってください。
emailやuuid、最小長といった細かい制約は付きますか
一切付きません。すべて`z.string()`、`z.number()`、`z.boolean()`で、標本の数値がすべて整数だったときにだけ`.int()`が付きます。@が入っているからと`.email()`を付けるのは推測であり、間違った制約は本番で正しいデータを拒否します。
空の配列はどうなりますか
`z.array(z.unknown())`になります。空の配列は要素の型について何も語らないからです。配列が空でないレコードを1件貼り付ければ、そこが埋まります。
Zodのどのバージョン向けですか
出力する呼び出しは、Zod 3と4で同じものだけです。`z.object`、`z.array`、`z.union`、`.nullable()`、`.optional()`、そして引数2つの形の`z.record(z.string(), z.unknown())`です。バージョンに依存するAPIは使っていません。
ここから渡せます
JSONからTypeScript型
JSON to TypeScript
JSONの実例からTypeScriptのインターフェースや型を推論し、省略可能なフィールドとユニオンをまとめます。
JSONからJSON Schema
JSON to JSON Schema
1つまたは複数の実例からJSON Schemaを推論し、見つかった形を合わせて1つにします。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
YAMLフォーマッター・検証
YAML Formatter & Validator
YAMLのインデントを揃えて検証し、パーサを壊すタブやアンカーの誤りに印を付けます。
次の一手
このツールが出したものをそのまま受け取れる道具です。
JSON Schema検証
JSON Schema Validator
文書をJSON Schemaで検証し、通らなかった箇所をインスタンスのパスとともに挙げます。
JSONからJSON Schema
JSON to JSON Schema
1つまたは複数の実例からJSON Schemaを推論し、見つかった形を合わせて1つにします。
JSONからTypeScript型
JSON to TypeScript
JSONの実例からTypeScriptのインターフェースや型を推論し、省略可能なフィールドとユニオンをまとめます。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。
文字列のハッシュ
Text Hash
文字列のMD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC-32を計算し、大文字表記とBase64での出力も選べます。