NAME
JSON::Dumper::Compact - JSON processing with Data::Dumper::Compact aesthetics
SYNOPSIS
my
$json
= jdc(
$data
);
DESCRIPTION
JSON::Dumper::Compact is a subclass of Data::Dumper::Compact that turns arrayrefs and hashrefs intead into JSON.
Deep data structures are rendered highly compactly:
[
"1556933590.65383"
,
"Fri May 3 18:33:10 2019"
, 26794,
"INFO"
, 3,
[
"SRV:8FB66F32"
], [ [
"/opt/voice-srvc-native/bin/async-srvc-att-gateway-poller"
, 33,
"NERV::Voice::SRV::Native::AsyncSRVATTGatewayPoller::main"
,
] ],
"batch_nena_messages returned"
,
"OK"
, 6, {
"FILENAME"
:
"lqxw020323"
},
1556933584,
"lqxw020323"
,
]
To ease debugging, blessed references without a TO_JSON
method are rendered as an object with a single two-element arrayref value:
{
"__bless__"
: [
"The::Class"
,
{
"the"
:
"object"
},
] }
METHODS
In addition to the Data::Dumper::Compact methods, we provide:
encode
JSON::Dumper::Compact->encode(
$data
, \
%opts
?);
$jdc
->encode(
$data
, \
%opts
?);
Operates identically to "dump" in Data::Dumper::Compact but named to be less confusing to code expecting a JSON object.
decode
JSON::Dumper::Compact->decode(
$string
, \
%opts
?);
$jdc
->decode(
$string
, \
%opts
);
Runs the supplied string through an JSON::MaybeXS decode
with options set to be able to reliably reparse what we can currently format - notably setting relaxed
to allow for trailing commas and using filter_json_single_key_object
to re-inflate blessed objects.
Note that using this method on untrusted data is a security risk. While encode
/dump
should be usable for JSON formatting, in general, decode
fully rehydrates for debugging purposes and as such can e.g. cause DESTROY methods to be called unexpectedly, which can allow a malicious user to do things to your perl5 VM. Rather than using debugging specific code on untrusted data, use JSON::MaybeXS or Mojo::JSON directly (if the encode
output doesn't parse correctly via other libraries, please report that as a bug)..
DO NOT USE THIS METHOD ON UNTRUSTED DATA IT WAS NOT DESIGNED TO BE SECURE.
COPYRIGHT
Copyright (c) 2019 the "AUTHOR" in Data::Dumper::Compact and "CONTRIBUTORS" in Data::Dumper::Compact as listed in Data::Dumper::Compact.
LICENSE
This library is free software and may be distributed under the same terms as perl itself. See https://dev.perl.org/licenses/.