jsonschema inspect <schema.json|.yaml> [--json/-j] [--verbose/-v] [--debug/-g]
[--default-dialect/-d <uri>]To evaluate a schema, an implementation will first scan it to determine the
dialects and keywords in use, walk over its valid subschemas, and resolve URI
references between them. The JSON Schema CLI offers a inspect command so you
can "see through the eyes" of a JSON Schema implementation previous to the
evaluation step. This is often useful for debugging purposes.
For example, consider the following schema that includes a local reference:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com",
"$ref": "#/$defs/string",
"$defs": { "string": { "type": "string" } }
}The inspect process will result in the following entries that capture the reference:
...
(POINTER) URI: https://example.com#/$defs/string/type
Type : Static
Root : https://example.com
Pointer : /$defs/string/type
Base : https://example.com
Relative Pointer : /$defs/string/type
Dialect : https://json-schema.org/draft/2020-12/schema
Base Dialect : https://json-schema.org/draft/2020-12/schema
Parent : /$defs/string
...
(POINTER) URI: https://example.com#/$ref
Type : Static
Root : https://example.com
Pointer : /$ref
Base : https://example.com
Relative Pointer : /$ref
Dialect : https://json-schema.org/draft/2020-12/schema
Base Dialect : https://json-schema.org/draft/2020-12/schema
Parent :
...
(REFERENCE) ORIGIN: /$ref
Type : Static
Destination : https://example.com#/$defs/string
- (w/o fragment) : https://example.com
- (fragment) : /$defs/string
jsonschema inspect path/to/my/schema.jsonjsonschema inspect path/to/my/schema.json --json