JSON::Schema::Modern::Result - Contains the result of a JSON Schema evaluation
version 0.520
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;
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.
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.
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
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.