Ich erstelle gerade ein JSON-Schema für einige Daten. Lassen Sie uns sagen, dass mein Schema dieser Form ist:JSON Schema alle möglichen Kombinationen von enum
{
"$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"]
}
}
Meine Frage ist, ist es möglich, festzulegen, dass wir alle möglichen Kombinationen der property1
und property2
Werte (in beliebiger Reihenfolge ohne Wiederholungen) wollen? Der Wert von val
wird fast sicher nicht einzigartig sein.
Alles, was ich dabei tun kann, ist "minItems": 4, "maxItems": 4,
in das Schema über dem "items"
Objekt hinzuzufügen, aber das bedeutet nur, dass wir am Ende mit genau 4 Elementen enden werden, und garantiert nicht, dass sie eindeutig sein werden.
Ich fordere niemanden auf, das ganze Schema für mich zu schreiben, nur nach Hinweisen auf Dokumentation oder einfachen Beispielen suchend, um mich in die richtige Richtung zu bringen.
Testfälle (eingeschlossen zu meinem Punkt zu klären)
Dies als einer der Kombinationen ausfallen sollte fehlt
{"data":[
{
"property1": "ALPHA",
"property2": "alpha",
"val": 7
},{
"property1": "ALPHA",
"property2": "beta"
"val": 16
},{
"property1": "BETA",
"property2": "alpha"
"val": 12
}
]}
Dies sollte der Kombinationen ausfallen als man ist wiederholt
{"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
}
]}
sollte dieser Pass
{"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
}
]}
auch
{"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
}
]}
Haben Sie es versucht? Dies ist kein Code-Writing-Service –
@DarrenSweeney Ich bin neu in JSON Schemas, also habe ich an all den Orten gesucht, an die ich denken konnte, und habe nichts Nützliches gefunden. Diese Website ist normalerweise sehr gut darin, mich in die richtige Richtung zu lenken, wenn ich feststecke, und soweit ich finden konnte, hatte niemand sonst eine solche Frage gestellt. Alles, was mir dabei in den Sinn kommt, ist einschränkend, also muss es genau 4 Elemente im Array geben, aber das garantiert nicht, dass sie alle einzigartig sind. – lioness99a