---
name: "JSON::Validator::Error"
section: "3pm"
platform: "linux"
package: "libjson-validator-perl"
version: "5.15+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/JSON::Validator::Error"
---

# JSON::Validator::Error(3pm)

JSON::Validator error object

## 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.
