参照
基本
「スキーマとは?」では、スキーマとは何かを説明し、スキーマ言語の必要性を説明しました。ここでは、簡単な JSON スキーマの作成に進みます。
Hello, World!
新しい言語を学ぶ際には、可能な限り最も簡単なものから始めることが役立つことがよくあります。JSON スキーマでは、空のオブジェクトは完全に有効なスキーマであり、有効な JSON をすべて受け入れます。
これは、有効な JSON であれば何でも受け入れます。
空のオブジェクトの代わりにtrue
を使用して、何でも一致するスキーマを表すこともできます。または、何も一致しないスキーマにはfalse
を使用することもできます。
これは、有効な JSON であれば何でも受け入れます。
このスキーマのドキュメントは常に無効になります。
type キーワード
もちろん、任意の JSON ドキュメントを受け入れるだけのために JSON スキーマを使用するわけではありません。JSON スキーマで最も一般的なのは、特定の型に制限することです。type
キーワードはそのため使用されます。
この本で JSON スキーマの「キーワード」を参照する場合は、オブジェクト内のキー/値ペアの「キー」部分を意味します。JSON スキーマの作成作業のほとんどは、特別な「キーワード」をオブジェクト内の値にマッピングすることに関係しています。
たとえば、次の例では、文字列のみが受け入れられます。
type
キーワードについては、こちらで詳しく説明しています。
JSON スキーマの宣言
JSON スキーマがどのドラフトを使用しているかを判断するのは必ずしも容易ではありません。$schema
キーワードを使用して、スキーマが記述されているJSON スキーマ仕様のバージョンを宣言できます。$schema を参照してください。必須ではありませんが、一般的に含めることが推奨されます。
簡潔にするため、本書のほとんどの例には$schema
キーワードは含まれていませんが、実際の運用では常に使用する必要があります。
$schema
の値がhttps://json-schema.dokyumento.jp/schema#
である場合、最新のJSON スキーマバージョンを参照していました。この使い方は非推奨となり、特定のバージョンのURIを使用する必要があります。一意の識別子の宣言
各スキーマの一意の識別子として$id
プロパティを含めることもベストプラクティスです。現時点では、制御するドメインのURLに設定します(例:)
$id
の詳細については、複雑なスキーマの構造化を開始するとより明確になります。
$id
は単にid
(ドル記号なし)です。