0
下面是我的JSON模式的摘錄。JSON模式 - 可能從一個對象引用多個模式?
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"images": {
"type": "array",
"items": { "$ref": "#/definitions/bits" },
}
},
"definitions": {
"identifier": {
"type": "string"
},
"bits": {
"type": "integer",
"enum": [
8,
16,
32
]
}
}
}
作爲指定,相信圖像的陣列,其中每個元素包含一個字符串標識符和一個整數,其值可以是8,16或32,將被認爲是有效的JSON數據。
這對我的一些JSON數據很好。
但是如果我想進一步約束模式,使整數值只能是32呢?我如何做到這一點,同時仍然允許一些JSON數據對原始模式有效?
例如,是否有可能在一個對象中引用兩個模式,例如,例如:
items": { "$ref": "#/definitions/bits" AND "$ref": "#/definitions/otherSchema"}
如果otherSchema定義「bits」爲32,你是說上面的語法會給我我想要的嗎?它不會被視爲兩個獨立的屬性嗎? – ksl
是的,'allOf'中的所有模式都適用於相同的模式。在這種情況下,數組中的所有項都必須針對'allOf'中的兩個模式進行驗證。 'oneOf','anyOf'和'not'是可用於在一箇中引用多個模式的其他關鍵字。 – Jason