—#!/usr/bin/perl
use
5.010;
use
strict;
use
warnings;
use
JSON;
my
$json
= JSON->new->allow_nonref;
our
$VERSION
=
'0.65'
;
# VERSION
{
local
$/;
my
$input
=
$json
->decode(
scalar
<>);
if
(
ref
(
$input
) eq
'ARRAY'
&&
@$input
> 0 &&
@$input
<= 3 &&
looks_like_number(
$input
->[0]) && !
ref
(
$input
->[1])) {
$input
=
$input
->[2];
}
$json
->encode(
$input
);
}
#ABSTRACT: Strip result envelope (JSON version)
#PODNAME: strip-result-env-json
__END__
=pod
=head1 NAME
strip-result-env-json - Strip result envelope (JSON version)
=head1 VERSION
version 0.65
=head1 SYNOPSIS
% cmdline-script ... --format=json | strip-result-env-json
=head1 DESCRIPTION
This is a simple utility to strip result envelope (that is, the status and
message). It will change:
[200,"OK",{"foo":"bar"}]
[405,"Not found"]
[200,"OK","result",{"result_metadata1":"val"}]
to:
{"foo":"bar"}
null
"result"
It accepts and outputs JSON. It passes data unchanged if input data is not
enveloped result. It dies on error.
=head1 SEE ALSO
L<Perinci::CmdLine>
=head1 AUTHOR
Steven Haryanto <stevenharyanto@gmail.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut