table of contents
JSON::Validator::Error(3pm) | User Contributed Perl Documentation | JSON::Validator::Error(3pm) |
NAME¶
JSON::Validator::Error - JSON::Validator error object
SYNOPSIS¶
use JSON::Validator::Error; my $err = JSON::Validator::Error->new($path, $message);
DESCRIPTION¶
JSON::Validator::Error is a class representing validation errors from JSON::Validator.
ATTRIBUTES¶
details¶
my $error = $error->details(["generic", "generic"]); my $error = $error->details([qw(array type object)]); my $error = $error->details([qw(format date-time Invalid)]); my $array_ref = $error->details;
Details about the error:
- 1.
- Often the category of tests that was run. Example values: allOf, anyOf, array, const, enum, format, integer, not, null, number, object, oneOf and string.
- 2.
- Often the test that failed. Example values: additionalItems, additionalProperties, const, enum, maxItems, maxLength, maxProperties, maximum, minItems, minLength. minProperties, minimum, multipleOf, not, null, pattern, required, type and uniqueItems,
- 3.
- The rest of the list contains parameters for the test that failed. It can be a plain human-readable string or numbers indicating things such as max/min values.
message¶
my $str = $error->message;
A human readable description of the error. Defaults to being being constructed from "details". See the $MESSAGES variable in the source code for more details.
As an EXPERIMENTAL hack you can localize $JSON::Validator::Error::MESSAGES to get i18n support. Example:
sub validate_i18n { local $JSON::Validator::Error::MESSAGES = { allOf => {type => '/allOf Forventet %3 - fikk %4.'}, }; my @error_norwegian = $jv->validate({age => 42}); }
Note that the error messages might contain a mix of English and the local language. Run some tests to see how it looks.
path¶
my $str = $error->path;
A JSON pointer to where the error occurred. Defaults to "/".
METHODS¶
new¶
my $error = JSON::Validator::Error->new(\%attributes); my $error = JSON::Validator::Error->new($path, \@details); my $error = JSON::Validator::Error->new($path, \@details);
Object constructor.
to_string¶
my $str = $error->to_string;
Returns the "path" and "message" part as a string: "$path: $message".
OPERATORS¶
JSON::Validator::Error overloads the following operators:
bool¶
my $bool = !!$error;
Always true.
stringify¶
my $str = "$error";
Alias for "to_string".
SEE ALSO¶
JSON::Validator.
2024-12-12 | perl v5.40.0 |