1
我試圖寫的模式驗證陣列具有以下結構的約束:JSON架構驗證相互依賴陣列結構
- 它永遠只能包含的值1,2,3,4,5
- 如果數組包含1,則該數組必須是唯一的條目
- 該數組只能同時包含2,3或4,例如[2,3]是不允許
- 5可以是本與2,3,4-
在一起,以便所述有效陣列是
[1],
[2],
[3],
[4],
[5],
[2,5],
[3,5],
[4,5]
我開始寫的模式如下:
{
"type": "array",
"oneOf": [
{ "items": { "enum": [1] } },
{
"anyOf": [
???
]
}
]
}
我無法獲得???
部分的工作。它有可能嗎? 注:我想避免硬編碼所有可能的數組,因爲我必須驗證更復雜的結構 - 這只是一個示例。此外,最佳解決方案是僅使用anyOf, allOf, oneOf, not
,避免使用像minItems
感謝您的回答! [[1]]做了什麼? – tscherg
@tscherg它是一個枚舉,它包含一個單值並且該值爲'[1]'。這是說'1'必須獨立的最簡單的方法。這是可行的,因爲'enum'不限於簡單的類型。 – Jason
我會接受你的答案,再次感謝。我已經快速瀏覽過,並且似乎還沒有針對PHP的v6驗證器。你遇到過嗎? – tscherg