JSON::Validator::Formats - Functions for validating JSON schema formats
- SYNOPSIS
- DESCRIPTION
-
FUNCTIONS
- check_byte
- check_date
- check_date_time
- check_duration
- check_double
- check_email
- check_float
- check_hostname
- check_idn_email
- check_idn_hostname
- check_int32
- check_int64
- check_ipv4
- check_ipv6
- check_iri
- check_iri_reference
- check_json_pointer
- check_regex
- check_relative_json_pointer
- check_time
- check_uri
- check_uri_reference
- check_uri_template
- check_uuid
- SEE ALSO
SYNOPSIS
use JSON::Validator::Formats;
my $error = JSON::Validator::Formats::check_uri($str);
die $error if $error;
my $jv = JSON::Validator->new;
$jv->formats({
"date-time" => JSON::Validator::Formats->can("check_date_time"),
"email" => JSON::Validator::Formats->can("check_email"),
"hostname" => JSON::Validator::Formats->can("check_hostname"),
"ipv4" => JSON::Validator::Formats->can("check_ipv4"),
"ipv6" => JSON::Validator::Formats->can("check_ipv6"),
"regex" => JSON::Validator::Formats->can("check_regex"),
"uri" => JSON::Validator::Formats->can("check_uri"),
"uri-reference" => JSON::Validator::Formats->can("check_uri_reference"),
});
DESCRIPTION
JSON::Validator::Formats is a module with utility functions used by "formats" in JSON::Validator to match JSON Schema formats. All functions return undef
for success or an error message for failure.
FUNCTIONS
check_byte
my $str_or_undef = check_byte $str;
Checks that the string matches byte format.
check_date
my $str_or_undef = check_date $str;
Validates the date part of a RFC3339 string.
check_date_time
my $str_or_undef = check_date_time $str;
Validated against RFC3339 timestamp in UTC time. This is formatted as "YYYY-MM-DDThh:mm:ss.fffZ". The milliseconds portion (".fff") is optional
check_duration
my $str_or_undef = check_duration $str;
Validate a RFC3339 duration string, such as "P3Y6M4DT12H30M5S".
check_double
my $str_or_undef = check_double $number;
Tries to check if the number is a double. Note that this check is not very accurate.
check_email
my $str_or_undef = check_email $str;
Validated against the RFC5322 spec.
check_float
my $str_or_undef = check_float $number;
Tries to check if the number is a float. Note that this check is not very accurate.
check_hostname
my $str_or_undef = check_hostname $str;
Will be validated using "is_hostname" in Data::Validate::Domain, if installed.
check_idn_email
my $str_or_undef = check_idn_email $str;
Will validate an email with non-ASCII characters using Net::IDN::Encode if installed.
check_idn_hostname
my $str_or_undef = check_idn_hostname $str;
Will validate a hostname with non-ASCII characters using Net::IDN::Encode if installed.
check_int32
my $str_or_undef = check_int32 $number;
Tries to check if the number is a int32. Note that this check is not very accurate.
check_int64
my $str_or_undef = check_int64 $number;
Tries to check if the number is a int64. Note that this check is not very accurate.
check_ipv4
my $str_or_undef = check_ipv4 $str;
Will be validated using "is_ipv4" in Data::Validate::IP, if installed or fall back to a plain IPv4 IP regex.
check_ipv6
my $str_or_undef = check_ipv6 $str;
Will be validated using "is_ipv6" in Data::Validate::IP, if installed.
check_iri
my $str_or_undef = check_iri $str;
Validate either an absolute IRI containing ASCII or non-ASCII characters, against the RFC3986 spec.
check_iri_reference
my $str_or_undef = check_iri_reference $str;
Validate either a relative or absolute IRI containing ASCII or non-ASCII characters, against the RFC3986 spec.
check_json_pointer
my $str_or_undef = check_json_pointer $str;
Validates a JSON pointer, such as "/foo/bar/42".
check_regex
my $str_or_undef = check_regex $str;
Will check if the string is a regex, using qr{...}
.
check_relative_json_pointer
my $str_or_undef = check_relative_json_pointer $str;
Validates a relative JSON pointer, such as "0/foo" or "3#".
check_time
my $str_or_undef = check_time $str;
Validates the time and optionally the offset part of a RFC3339 string.
check_uri
my $str_or_undef = check_uri $str;
Validate either a relative or absolute URI containing just ASCII characters, against the RFC3986 spec.
Note that this might change in the future to only check absolute URI.
check_uri_reference
my $str_or_undef = check_uri_reference $str;
Validate either a relative or absolute URI containing just ASCII characters, against the RFC3986 spec.
check_uri_template
my $str_or_undef = check_uri_reference $str;
Validate an absolute URI with template characters.
check_uuid
my $str_or_undef = check_uuid $str;
Will check if $str
looks like an UUID. Example UUID: "5782165B-6BB6-472F-B3DD-369D707D6C72".