web-dev-qa-db-ja.com

JSONスキーマのカスタムプロパティ

カスタムプロパティでJSONスキーマを拡張することは有効ですか?

私が尋ねている理由は、スキーマを使用して、スキーマが記述するJSONのフォームもレンダリングしているためです(スキーマに記述されている各プロパティは、ラベルとある種の入力を持つフォーム要素として使用されます)。

私が主にフォームのレンダリングに使用するいくつかのプロパティを使用してスキーマを拡張できると便利ですが、スキーマを使用してJSONオブジェクト自体を検証する場合は無視されます。

JSONオブジェクトには2つの異なる表現を含めることができます(1つはスキーマであり、もう1つはフォームを作成するためだけのカスタムプロパティを持つスキーマのようなオブジェクトですが、両方を1つに組み合わせることができればメンテナンスが容易になります)。

残念ながら、Googleはあまり役に立ちませんでしたし、JSONスキーマの使用経験もあまりありません。そのため、明らかな何かが欠けている場合はお詫びします。

編集1:
スキーマスニペットの例:

{
    "title": "Example Schema",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string",
            "CUSTOM_PROPERTY": "CUSTOM_VALUE"
        }
    }
}

上記は単なるスニペットであるため、title$schemaなどは含まれていません。

13
Anton v B

(有効なJSONの場合)バリデーターはおそらくカスタムプロパティを無視します。しかし、どのバリデーターを使用しますか?その特定のバリデーターに対してそれをチェックしてください。

ここに、テストするオンラインバリデーターがいくつかあります。

また、JSONスキーマを拡張することもできます。 http://json-schema.org/latest/json-schema-core.html#rfc.section.6.4 を参照してください。

7
Pedro