19

IETF によって作成された JSON スキーマ ドラフト 3 にないスキーマ ドラフト 4 に存在する機能は何ですか?

4

2 に答える 2

31

変更ログから:

新しいキーワード

  • anyOf (スキーマ配列内の少なくとも 1 つのスキーマに一致)、
  • allOf (スキーマ配列内のすべてのスキーマに一致)、
  • oneOf (スキーマ配列内の 1 つのスキーマに正確に一致)、
  • ない (スキーマと一致しない)、
  • multipleOf (divisibleBy を置き換えます)、
  • minProperties と maxProperties (オブジェクト インスタンス内のメンバーの最小数と最大数)、
  • 定義 (インライン化されたサブスキーマの標準化されたコンテナー)。

削除:

  • 許可しない
  • 伸びる
  • 割り切れる

機能の変更:

タイプ

  • 値が配列の場合、スキーマを要素として使用できなくなりました。また、配列には少なくとも 1 つの要素が必要です。


{
    "type": [ "string", { "other": "schema" } ]
}


{
   "anyOf": [
       { "type": "string" },
       { "other": "schema" }
    ]
}

必須

  • 以前は、プロパティのサブスキーマの属性でした。これは、同じ役割を果たす第 1 レベルのキーワードになり、引数として文字列配列を持ちます。


{
    "properties": {
        "p": {
            "type": "string",
            "required": true
        },
        "q": {
            "type": "string",
            "required": true
        }
    }
}


{
    "properties": {
        "p": { "type": "string" },
        "q": { "type": "string" }
    },
    "required": [ "p", "q" ]
}

依存関係

  • プロパティの依存関係で単一の文字列は許可されなくなりました。配列のみが許可されます


{
    "dependencies": { "a": "b" }
}


{
    "dependencies": { "a": [ "b" ] }
}
于 2013-07-11T20:44:09.623 に答える