JSON Schemaジェネレーター
JSONサンプルを貼り付けると、その形状、型、必須フィールドを記述するdraft-07 JSON Schemaを取得できます。
仕組み
このツールは、解析されたJSONを再帰的に辿ります。オブジェクトは type: "object" になり、各キーごとに properties エントリが作られ、存在するすべてのキーが required に列挙されます。配列は type: "array" になり、各要素の型を推論・マージして構築された items スキーマを持ちます。プリミティブ値は直接マッピングされます。文字列、数値(サンプルされた値がすべて整数の場合は "number" の代わりに "integer")、真偽値、nullです。
これはブラウザネイティブのパーサーである JSON.parse と、その後に続く小さな再帰的ウォーカーを通じて、すべてこのページ自身のJavaScriptで実行されます。アップロードは一切行われません。
よくある質問
どのJSON Schemaドラフトを生成しますか?
draft-07です。ajvやjsonschema(Python)、ほとんどのIDEツールを含むバリデータの中で最も広くサポートされているバージョンです。出力は単純なJSONなので、より新しいドラフトのキーワードが必要な場合は後から手動で編集できます。
配列はどのように扱われますか?
ツールは配列内のすべての要素を調べ、推論された型をマージします。すべての要素が同じ形状を共有していれば1つのitemsスキーマになり、要素間で型が異なる場合は、サンプル内のどの要素も表現から漏れないよう、より広いスキーマにフォールバックします。
必須フィールドとしてマークされますか?
はい、オブジェクトに存在するすべてのキーは、サンプルに出現したという理由でそのオブジェクトのrequiredリストに追加されます。実際のデータでは任意項目であるキーは、生成されたスキーマのrequired配列から削除してください。