46

ときどき、次の JSON スキーマに気付きました。

{
    "type": "object",   
    "properties": {
        "address": {
                   "type": "string",
                   "required": true
            }
     }

}

{
    "type": "object",   
    "properties": {
        "address": {
                   "type": "string",
                   "optional": false
            }
     }

}

では、上記の例のrequiredvsの違いは何ですか?optional

4

3 に答える 3

40

JSON スキーマのIETF ドラフト v4requiredは を定義するだけで、含まれていませんoptional

ドラフト v4のセクションを引用するには:required

有効な値:このキーワードの値は配列でなければなりません。この配列には、少なくとも 1 つの要素が必要です。この配列の要素は文字列でなければならず、一意でなければなりません。

検証成功の条件: プロパティ セットにこのキーワードの配列値のすべての要素が含まれている場合、オブジェクト インスタンスはこのキーワードに対して有効です。

実際には、 usingrequiredは、指定された文字列の配列に名前が含まれていないすべてのプロパティをオプションにします。

于 2014-01-06T12:06:24.720 に答える
24

実際には、これらは同等の式ですが、異なるバージョンの標準を使用しています。

optionalv2requiredから、v3 からです。ツールに適したものを使用していることを確認する必要があります (理想的には、可能であれば v4 に移行する必要があります)。

于 2013-10-24T11:35:34.253 に答える
3

これは、オブジェクトがプロパティに対して非undefined値を持つ必要があることを意味しaddressます (if required)。

于 2013-04-25T01:29:11.430 に答える