JSON::V...::Error(3)

πŸŽ€ NAME πŸŽ€

okay so bestie, this is the manual page for JSON::V...::Error(3) from the User Contributed Perl Documentation crew, and it’s literally about JSON::Validator::Error β€” the JSON::Validator error object. Periodt. πŸ’–


✨ 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. It’s giving β€œerror object with main character energy” and honestly? Obsessed. πŸ’…


🌸 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. πŸ‘‘

πŸ§ͺ EXPERIMENTAL hack alert: 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 "/". Slay. ✨


πŸ’œ 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. Iconic behavior, no notes. πŸ’…

⭐ to_string ⭐

         my $str = $error->to_string;

Returns the "path" and "message" part as a string: "$path: $message". Cute, concise, done. 🫢


πŸ”₯ OPERATORS πŸ”₯

JSON::Validator::Error overloads the following operators:

πŸ’€ bool πŸ’€

         my $bool = !!$error;

Always true. It ate and left no crumbs. βœ…

πŸ“ stringify πŸ“

         my $str = "$error";

Alias for "to_string". Same vibe, different entrance. πŸ’–


🌟 SEE ALSO 🌟

JSON::Validator.


Source/version perl v5.42.0 + date 2025-03-17 β€” that’s the footer, bestie; now go validate slayfully πŸ’…βœ¨

πŸ“¦ where this page comes from