[英]JSON Schema to prohibit an Array object to have properties
json模式是:
"Deck": {
"type": "array",
"items": {
"$ref": "#/definitions/Card"
},
"minItems": 52,
"maxItems": 52,
"uniqueItems": true
},
因此,如何禁止這種情況:
let d = new Deck();
d.garbageField = 'fdsf';
與我的架構?
我認為您正在尋找"additionalProperties": false
我相信這個問題與JSON模式無關,因為它是純JavaScript問題。
JSON模式會驗證JSON文檔而不是JavaScript對象。 而且JSON本身不允許您將其他屬性放在數組上。
讓我向您展示一個在Chrome控制台中運行的JavaScript代碼的簡單示例:
let d = ['a', 'b', 'c'];
d.e = 'test';
JSON.stringify(d);
將給出以下輸出:
"["a","b","c"]"
因此,即使JavaScript允許您將其他屬性放入數組中,結果JSON對象也不會包含它們。 因此,當針對Schema驗證JSON時,問題就解決了。
因此,您的問題的答案是:
您無法在JSON模式中執行此操作,因為JSON本身禁止這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.