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.
Copyright and licence
This software is copyright (c) 2020 by Karen Etheridge.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Some schema files have their own licence, in share/LICENSE.