问题
I want to describe with JSON schema array, which should consist of zero or more predefined values. To make it simple, let's have these possible values: one
, two
and three
.
Correct arrays (should pass validation):
[]
["one", "one"]
["one", "three"]
Incorrect:
["four"]
Now, I know the "enum"
property should be used, but I can't find relevant information where to put it.
Option A (under "items"
):
{
"type": "array",
"items": {
"type": "string",
"enum": ["one", "two", "three"]
}
}
Option B:
{
"type": "array",
"items": {
"type": "string"
},
"enum": ["one", "two", "three"]
}
回答1:
Option A is correct and satisfy your requirements.
{
"type": "array",
"items": {
"type": "string",
"enum": ["one", "two", "three"]
}
}
回答2:
According to the json-schema
documentation, the enumerated values of an array
must be included in the "items"
field:
{
"type": "array",
"items": {
"type": "string",
"enum": ["one", "two", "three"]
}
}
If you have an array
that can hold e.g. items of different type, then your schema should look like the one below:
{
"type": "array",
"items": [
{
"type": "string",
"enum": ["one", "two", "three"]
},
{
"type": "integer",
"enum": [1, 2, 3]
}
]
}
来源:https://stackoverflow.com/questions/30924271/correct-way-to-define-array-of-enums-in-json-schema