説明
この関数は、JSONドキュメントを検証するために使用されます。JSONドキュメントがJSON Schema規格に適合している場合は1を返し、適合していない場合は0を返します。列制約で使用できます。
構文
JSON_SCHEMA_VALID(schema, document)
説明
パラメータ
schemaは、JSON Schemaを指定するために使用され、Schemaは有効なJSONオブジェクトである必要があります。JSON Schemaでは、
requiredプロパティを使用して、含まれている必要があるプロパティを強制的に指定できます。JSON Schemaでは、
id、$schema、description、typeプロパティをサポートしていますが、これらのプロパティを提供することは必須ではありません。
パラメータ
documentは、検証対象のJSONドキュメントを指定するために使用され、このJSONドキュメントは有効なJSONドキュメントである必要があります。パラメータのいずれかが有効なJSONでない場合、この関数はエラーを発生させます。
例
次の例では、{'type': 'string'} を使用してJSON Schemaを定義しており、このSchemaは有効なJSONデータが文字列タイプであることを示しています。'"JSON_doc"' は検証対象のJSONドキュメントです。
注意
このステートメントでは、文字列 JSON_doc はダブルクォーテーションマーク(")で囲まれており、通常の文字列ではなく有効なJSON文字列であることを示しています。JSONでは、文字列値はダブルクォーテーションマークで囲む必要があります。
obclient [infotest]> SELECT JSON_SCHEMA_VALID('{"type": "string"}', '"JSON_doc"');
実行結果は次のとおりです:
+-------------------------------------------------------+
| JSON_SCHEMA_VALID('{"type": "string"}', '"JSON_doc"') |
+-------------------------------------------------------+
| 1 |
+-------------------------------------------------------+
1 row in set
この例では、JSONドキュメントは有効なJSON文字列であり、Schemaで定義された文字列タイプに適合しているため、関数は検証に合格したことを示す 1 を返します。