json-schema-eval(1p)

json-schema-eval1p

A command-line interface to json::schema::modern::evaluate()

Usage

json-schema-eval \ [{--specification_version | version <version>}] \ [--output_format <format>] \ [--short_circuit] \ [--max_traversal_depth <depth>] \ [--validate_formats] \ [--validate_content_schemas] \ [--collect_annotations] \ [--strict] \ [--data <filename>] \ [--schema <filename>] \ [--validate-schema [filename]] [--add-schema <filename>] [--dump-identifiers]

Version

version 0.611

Overview

A command-line interface to "evaluate" in JSON::Schema::Modern.

data.json contains:

  {"hello": 42.1}

schema.json contains:

  {"properties": {"hello": {"type": ["string", "integer"]}}}

Run:

  json-schema-eval --data data.json --schema schema.json

produces output:

  {
    "errors" : [
      {
        "error" : "got number, not one of string, integer",
        "instanceLocation" : "/hello",
        "keywordLocation" : "/properties/hello/type"
      },
      {
        "error" : "not all properties are valid",
        "instanceLocation" : "",
        "keywordLocation" : "/properties"
      }
    ],
    "valid" : false
  }

Or run:

  json-schema-eval --validate-schema schema.json

produces output:

  {
    "valid": true
  }

The exit value ($?) is 0 when the result is valid, 1 when it is invalid, and some other non-zero value if an exception occurred.

Options

All boolean and string options used as constructors to JSON::Schema::Modern are available.

Additionally, "--data" is used to provide the filename containing a json-encoded data instance, and "--schema" provides the filename containing a json-encoded schema.

If either or both of these are not provided, STDIN is used as input.

Only JSON-encoded data and schemas are supported at this time.

Alternatively, you can use "--validate-schema" and either provide a filename containing a json-encoded schema, or omit the argument to read a schema from STDIN. The schema will be evaluated against its meta-schema for the corresponding specification version.

Additional schemas, that you wish to use via the $ref keyword, can be added with "--add-schema <filename>". The actual filename is insignificant: Make sure you use an $id keyword within that schema that matches the value you use in the $ref. This option can be used more than once.

Support

Bugs may be submitted through <https://github.com/karenetheridge/JSON-Schema-Modern/issues>.

I am also usually active on irc, as 'ether' at "irc.perl.org" and "irc.libera.chat".

You can also find me on the JSON Schema Slack server <https://json-schema.slack.com> and OpenAPI Slack server <https://open-api.slack.com>, which are also great resources for finding help.

Availability

This executable is available on modern Debian versions (via "apt-get") as the "libjson-schema-modern-perl" package.

Author

Karen Etheridge <[email protected]>

From libjson-schema-modern-perl 0.611-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.