JSON::Schema::Modern::Result - Contains the result of a JSON Schema evaluation
version 0.540
use JSON::Schema::Modern; my $js = JSON::Schema::Modern->new; my $result = $js->evaluate($data, $schema); my @errors = $result->errors; my $result_data_encoded = encode_json($result); # calls TO_JSON # use in numeric and boolean context say sprintf('got %d %ss', $result, ($result ? 'annotation' : 'error')); # use in string context say 'full results: ', $result; # combine two results into one: my $overall_result = $result1 & $result2;
This object holds the complete results of evaluating a data payload against a JSON Schema using JSON::Schema::Modern.
The object contains a boolean overload, which evaluates to the value of "valid", so you can use the result of "evaluate" in JSON::Schema::Modern in boolean context.
The object also contains a bitwise AND overload (&), for combining two results into one (the result is valid iff both inputs are valid; annotations and errors from the second argument are appended to those of the first).
&
A boolean. Indicates whether validation was successful or failed.
Returns an array of JSON::Schema::Modern::Error objects.
Returns an array of JSON::Schema::Modern::Annotation objects.
One of: flag, basic, strict_basic, detailed, verbose, terse. Defaults to basic.
flag
basic
strict_basic
detailed
verbose
terse
flag returns just the result of the evaluation: either {"valid": true} or {"valid": false}.
{"valid": true}
{"valid": false}
basic adds the list of errors or annotations to the boolean evaluation result.
errors
annotations
instance_location and keyword_location are always included, as JSON pointers, describing the path to the evaluation location; absolute_keyword_location is added (as a resolved URI) whenever it is known and different from keyword_location.
instance_location
keyword_location
absolute_keyword_location
strict_basic is like basic but follows the draft-2019-09 specification precisely, including
replicating an error fixed in the next draft, in that instance_location and keyword_location values are provided as fragment-only URI references rather than JSON pointers.
terse is not described in any specification; it is like basic, but omits some redundant
errors (for example the one for the allOf keyword that is added when any of the subschemas under allOf failed evaluation).
allOf
Returns a data structure suitable for serialization; requires one argument specifying the output format to use, which corresponds to the formats documented in https://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.10.4. The only supported formats at this time are flag, basic, strict_basic, and terse.
Calls "format" with the style configured in "output_format".
Returns the number of annotations when the result is true, or the number of errors when the result is false.
When provided with another result object, returns a new object with the combination of all results. See & at "OVERLOADS".
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.
irc.perl.org
irc.libera.chat
You can also find me on the JSON Schema Slack server and OpenAPI Slack server, which are also great resources for finding help.
Karen Etheridge <ether@cpan.org>
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.
To install JSON::Schema::Modern, copy and paste the appropriate command in to your terminal.
cpanm
cpanm JSON::Schema::Modern
CPAN shell
perl -MCPAN -e shell install JSON::Schema::Modern
For more information on module installation, please visit the detailed CPAN module installation guide.