[英]JSON Schema “oneOf” each?
是否可以制作一個 JSON 模式來驗證一個數組是否包含至少 1 個三個非重疊類型的實例。 一個簡單的例子是一個任意長度的數字數組,其中至少包含一個 1、一個 2 和一個 3。
我不能使用allOf
因為這將驗證數組中的每個數字都是 1、2 和 3 - 沒有數字可以是
我不能使用anyOf
因為那樣我就可以擁有一個只有一個元素的數組
我不能使用oneOf
因為,我可以再一次擁有一個帶有一個數字的數組
(......我也不清楚我應該使用contains
鍵還是在items
鍵中)
我正在尋找的是一種表達這些項目“每個”的方式。 JSON 架構是否可行?
這是一個帶有oneOf
的損壞示例
{
"type": "object",
"properties": {
"numbers": {
"type": "array",
"contains": {
"oneOf": [
{
"const": 1
},
{
"const": 2
},
{
"const": 3
}
]
},
"items": {
"type": "number"
}
}
}
}
[1] – 不應驗證
[1,2] - 不應該驗證
[1,2,3] - 應該驗證
[1,2,3,4] - 應該驗證
您可以將contains
放在allOf
:
{
"type": "object",
"properties": {
"numbers": {
"type": "array",
"allOf": [
{
"contains": {
"const": 1
}
},
{
"contains": {
"const": 2
}
},
{
"contains": {
"const": 3
}
}
]
}
}
}``
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.