format : String

format

String

Define semantic information about a string instance.

Value This keyword must be set to a string, preferrably one that is standardized by JSON Schema to ensure interoperability Hint: Use the jsonschema metaschema and jsonschema lint commands to catch keywords set to invalid values
Kind Annotation
Applies To String
Base Dialect 2020-12
Changed In Draft 3 Draft 4 Draft 6 Draft 7 2019-09
Introduced In Draft 1
Vocabulary Format Annotation
Specification https://json-schema.org/draft/2020-12/json-schema-validation.html#section-7.2.1
Metaschema https://json-schema.org/draft/2020-12/meta/format-annotation
Official Tests draft2020-12/format.json
Default None
Annotation String The format name set by this keyword Hint: Use the jsonschema validate command to collect annotations from the command-line
Affected By None
Affects None
Also See

The format keyword communicates that string instances are of the given logical type by producing an annotation value.

The supported formats are the following.

Format Category Specification
"date-time" Time JSON Schema 2020-12 Validation Section 7.3.1
"date" Time JSON Schema 2020-12 Validation Section 7.3.1
"time" Time JSON Schema 2020-12 Validation Section 7.3.1
"duration" Time JSON Schema 2020-12 Validation Section 7.3.1
"email" Emails JSON Schema 2020-12 Validation Section 7.3.2
"idn-email" Emails JSON Schema 2020-12 Validation Section 7.3.2
"hostname" Hostnames JSON Schema 2020-12 Validation Section 7.3.3
"idn-hostname" Hostnames JSON Schema 2020-12 Validation Section 7.3.3
"ipv4" IP Addresses JSON Schema 2020-12 Validation Section 7.3.4
"ipv6" IP Addresses JSON Schema 2020-12 Validation Section 7.3.4
"uri" Resource Identifiers JSON Schema 2020-12 Validation Section 7.3.5
"uri-reference" Resource Identifiers JSON Schema 2020-12 Validation Section 7.3.5
"iri" Resource Identifiers JSON Schema 2020-12 Validation Section 7.3.5
"iri-reference" Resource Identifiers JSON Schema 2020-12 Validation Section 7.3.5
"uuid" Resource Identifiers JSON Schema 2020-12 Validation Section 7.3.5
"uri-template" Resource Identifiers JSON Schema 2020-12 Validation Section 7.3.6
"json-pointer" JSON Pointer JSON Schema 2020-12 Validation Section 7.3.7
"relative-json-pointer" JSON Pointer JSON Schema 2020-12 Validation Section 7.3.7
"regex" Regular Expressions JSON Schema 2020-12 Validation Section 7.3.8

Examples

A schema that describes string instances as e-mail addresses Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "format": "email"
}
Valid A string value that represents a valid e-mail address is valid Instance
"john.doe@example.com"
Annotations
{ "keyword": "/format", "instance": "", "value": "email" }
Valid A string value that represents an invalid e-mail address is valid Instance
"foo-bar"
Annotations
{ "keyword": "/format", "instance": "", "value": "email" }
Valid Any non-string value is valid but no annotation is produced Instance
45