NAME
JSON::Validator::Formats - Functions for validating JSON schema formats
SYNOPSIS
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".