enum : Array<Any>

enum

Array<Any>

Validation succeeds if the instance is equal to one of the elements in this keyword’s array value.

Value This keyword must be set to a non-empty array of unique JSON values
Kind Assertion
Applies To Any
Base Dialect 2020-12
Changed In None
Introduced In Draft 1
Vocabulary Validation
Specification https://json-schema.org/draft/2020-12/json-schema-validation.html#section-6.1.2
Metaschema https://json-schema.org/draft/2020-12/meta/validation
Official Tests draft2020-12/enum.json
Default None
Annotation None
Affected By None
Affects None
Also See

The enum keyword restricts instances to a finite set of possible values, which may be of different types.

Examples

A schema that constrains instances to an homogeneous string enumeration Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "enum": [ "red", "green", "blue" ]
}
Valid A string value that equals a value in the enumeration is valid Instance
"green"
Invalid A string value that does not equal a value in the enumeration is invalid Instance
"black"
Invalid Any other value is invalid Instance
2
A schema that constrains instances to an homogeneous numeric enumeration Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "enum": [ 1, 2.0, 3 ]
}
Valid An integer value that equals a value in the enumeration is valid Instance
1
Valid An integer representation of a real value that equals a value in the enumeration is valid Instance
2
Invalid Any other number value is invalid Instance
5
Invalid Any other non-number value is invalid Instance
"Hello"
A schema that constrains instances to an heterogeneous enumeration Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "enum": [ "red", 123, true, { "foo": "bar" }, [ 1, 2 ], null ]
}
Valid A boolean value that equals a value in the enumeration is valid Instance
true
Valid An object value that equals a value in the enumeration is valid Instance
{ "foo": "bar" }
Invalid An object value that does not equal a value in the enumeration is invalid Instance
{ "foo": "baz" }