NAME
JSON::Schema::Draft201909::Result - Contains the result of a JSON Schema evaluation
VERSION
version 0.026
SYNOPSIS
use JSON::Schema::Draft201909;
my $js = JSON::Schema::Draft201909->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;
DESCRIPTION
This object holds the complete results of evaluating a data payload against a JSON Schema using JSON::Schema::Draft201909.
OVERLOADS
The object contains a boolean overload, which evaluates to the value of "valid", so you can use the result of "evaluate" in JSON::Schema::Draft201909 in boolean context.
ATTRIBUTES
valid
A boolean. Indicates whether validation was successful or failed.
errors
Returns an array of JSON::Schema::Draft201909::Error objects.
annotations
Returns an array of JSON::Schema::Draft201909::Annotation objects.
output_format
One of: flag
, basic
, strict_basic
, detailed
, verbose
, terse
. Defaults to basic
.
flag
returns just the result of the evaluation: either{"valid": true}
or{"valid": false}
.basic
adds the list oferrors
orannotations
to the boolean evaluation result.instance_location
andkeyword_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 fromkeyword_location
.strict_basic
is likebasic
but follows the draft-2019-09 specification precisely, includingreplicating an error fixed in the next draft, in that
instance_location
andkeyword_location
values are provided as fragment-only URI references rather than json pointers.terse
is not described in any specification; it is likebasic
, but omits some redundanterrors (for example the one for the
allOf
keyword that is added when any of the subschemas underallOf
failed evaluation).
METHODS
format
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
.
TO_JSON
Calls "format" with the style configured in "output_format".
count
Returns the number of annotations when the result is true, or the number of errors when the result is false.
SUPPORT
Bugs may be submitted through https://github.com/karenetheridge/JSON-Schema-Draft201909/issues.
I am also usually active on irc, as 'ether' at irc.perl.org
and irc.freenode.org
.
AUTHOR
Karen Etheridge <ether@cpan.org>
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.