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 "/".