App-MARC-Validator
view release on metacpan or search on metacpan
Validator/Utils.pm view on Meta::CPAN
$not_valid_hr->{$plugin_errors->record_id} = [];
foreach my $error (@{$plugin_errors->errors}) {
push @{$not_valid_hr->{$plugin_errors->record_id}}, {
'error' => $error->error,
'params' => $error->params,
};
}
}
}
# JSON output.
my $j = Cpanel::JSON::XS->new;
if ($self->{'_opts'}->{'p'}) {
$j = $j->pretty;
}
my $json = $j->canonical(1)->encode($struct_hr);
return $json;
}
1;
__END__
=pod
=encoding utf8
=head1 NAME
App::MARC::Validator::Utils - Utilities for App::MARC::Validator.
=head1 SYNOPSIS
use App::MARC::Validator::Utils qw(obj_to_json);
my $json = obj_to_json($app, $report);
=head1 SUBROUTINES
=head2 C<obj_to_json>
my $json = obj_to_json($app, $report);
Convert validation report object to JSON string.
Returns string with JSON.
=head1 EXAMPLE
=for comment filename=obj_to_json.pl
use strict;
use warnings;
use App::MARC::Validator::Utils qw(obj_to_json);
use Data::MARC::Validator::Report;
use Data::MARC::Validator::Report::Error;
use Data::MARC::Validator::Report::Plugin;
use Data::MARC::Validator::Report::Plugin::Errors;
use DateTime;
# Create data object for validator report.
my $report = Data::MARC::Validator::Report->new(
'datetime' => DateTime->now,
'plugins' => [
Data::MARC::Validator::Report::Plugin->new(
'module_name' => 'MARC::Validator::Plugin::Foo',
'name' => 'foo',
'plugin_errors' => [
Data::MARC::Validator::Report::Plugin::Errors->new(
'errors' => [
Data::MARC::Validator::Report::Error->new(
'error' => 'Error #1',
'params' => {
'key' => 'value',
},
),
Data::MARC::Validator::Report::Error->new(
'error' => 'Error #2',
'params' => {
'key' => 'value',
},
),
],
'filters' => ['filter1', 'filter2'],
'record_id' => 'id1',
),
],
'version' => '0.01',
),
],
);
my $self = {
'_opts' => {
'p' => 1,
},
};
my $json = obj_to_json($self, $report);
print $json;
# Output:
# {
# "foo" : {
# "checks" : {
# "not_valid" : {
# "id1" : [
# {
# "error" : "Error #1",
# "params" : {
# "key" : "value"
# }
# },
# {
# "error" : "Error #2",
# "params" : {
# "key" : "value"
# }
# }
# ]
# }
# },
# "datetime" : "2026-05-21T11:20:09",
( run in 0.709 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )