2017-07-26 96 views
1

我想弄清楚如何我可以全局說所有數組必須是長度爲1而不必使用minItems:1我在模式中的每個地方指定一個數組。我在創建一個自定義類型,這是一個選項,但我覺得應該有一個更好的方法?使用AJV設置默認規則

另一個全侷限制是不允許任何空字符串。

感謝您的幫助!

回答

1

永遠不能改變關鍵字(全局或其他)的行爲。你最好的辦法是創建一個包含你的特殊規則的文件。

global.js

{ 
    "definitions": { 
    "non-empty-array": { 
     "type": "array", 
     "minItems": 1 
    } 
    } 
} 

然後,你可以參考這個文件要使用這些特殊規則的任何時間。

example.js

{ 
    "type": "object", 
    "properties": { 
    "a": { 
     "allOf": [{ "$ref": "/global.js#/definitions/non-empty-array" }], 
     "items": { "type": "string" } 
    }, 
    "b": { 
     "allOf": [{ "$ref": "global.js#/definitions/non-empty-array" }], 
     "items": { "type": "integer" } 
    } 
    } 
}