我目前正在爲一些數據起草JSON模式。比方說,我的模式是這樣的形式:JSON Schema所有可能的枚舉組合
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Title",
"type": "array",
"items": {
"type":"object",
"properties":{
"property1": {
"type": "string",
"enum": ["ALPHA", "BETA"]
},
"property2": {
"type": "string",
"enum": ["alpha", "beta"]
},
"val": {
"type": "number",
"min": 0,
"max": 100
}
},
"required": ["property1", "property2", "val"]
}
}
我的問題是,是否有可能指定我們希望property1
和property2
值的所有可能的組合(在沒有重複任何順序)? val
的值幾乎肯定不會是唯一的。
我所能想到的只是將"minItems": 4, "maxItems": 4,
添加到"items"
對象上方的模式中,但這隻意味着我們最終只能得到4個項目,並不能保證它們是唯一的。
我並不是要求任何人爲我編寫整個模式,只是尋找指向文檔的指針,或簡單的例子來推動我朝着正確的方向前進。
(包括闡明我的觀點)
這應該作爲組合中的一個失敗測試用例缺少
{"data":[
{
"property1": "ALPHA",
"property2": "alpha",
"val": 7
},{
"property1": "ALPHA",
"property2": "beta"
"val": 16
},{
"property1": "BETA",
"property2": "alpha"
"val": 12
}
]}
將失敗,因爲組合之一是重複
{"data":[
{
"property1": "ALPHA",
"property2": "alpha"
"val": 73
},{
"property1": "ALPHA",
"property2": "beta"
"val": 72
},{
"property1": "BETA",
"property2": "alpha"
"val": 73
},{
"property1": "BETA",
"property2": "beta"
"val": 71
},{
"property1": "ALPHA",
"property2": "beta"
"val": 68
}
]}
這應該通過
{"data":[
{
"property1": "ALPHA",
"property2": "alpha"
"val": 26
},{
"property1": "ALPHA",
"property2": "beta"
"val": 26
},{
"property1": "BETA",
"property2": "alpha"
"val": 32
},{
"property1": "BETA",
"property2": "beta"
"val": 83
}
]}
這也應該通過
{"data":[
{
"property1": "ALPHA",
"property2": "beta"
"val": 15
},{
"property1": "BETA",
"property2": "alpha"
"val": 6
},{
"property1": "ALPHA",
"property2": "alpha"
"val": 65
},{
"property1": "BETA",
"property2": "beta"
"val": 37
}
]}
你試過了嗎?這不是一個代碼編寫服務 –
@DarrenSweeney我是JSON Schemas的新手,所以我查看了所有我能想到的地方,並且沒有發現任何有用的東西。當我被困時,這個網站通常非常善於指引我正確的方向,並且據我所知,沒有人問過這樣的問題。我能想到的所有限制都是這樣的,因此陣列中必須有4個項目,但這並不能保證它們都是唯一的。 – lioness99a