NAME¶
Catmandu::Importer::JSON - Package that imports JSON data
SYNOPSIS¶
# From the command line
$ catmandu convert JSON to YAML < data.json
# or for faster newline delimited input
$ catmandu convert JSON --line_delimited 1 to YAML < data.json
# In a Perl script
use Catmandu;
my $importer = Catmandu->importer('JSON', file => "/foo/bar.json");
my $n = $importer->each(sub {
my $hashref = $_[0];
# ...
});
DESCRIPTION¶
This package imports JSON data. The parser is quite liberal in the input it
accepts. You can use the "line_delimited"
option to parse "newline delimited JSON" faster:
{ "recordno": 1, "name": "Alpha" }
{ "recordno": 2, "name": "Beta" }
{ "recordno": 3, "name": "Gamma" }
CONFIGURATION¶
- file
- Read input from a local file given by its path. Alternatively a scalar
reference can be passed to read from a string.
- fh
- Read input from an IO::Handle. If not specified, Catmandu::Util::io is
used to create the input stream from the
"file" argument or by using STDIN.
- encoding
- Binmode of the input stream "fh". Set to
":utf8" by default.
- fix
- An ARRAY of one or more fixes or file scripts to be applied to imported
items.
- line_delimited
- Read line-delimited JSON line-by-line with a non-incremental parser.
- byte_buffer_size
- Number of bytes that is read by each iteration of the incremental parser.
Ignored if "line_delinmited" is
1. Default is 256.
METHODS¶
Every Catmandu::Importer is a Catmandu::Iterable all its methods are inherited.
The methods are not idempotent: JSON streams can only be read once.
SEE ALSO¶
Catmandu::Exporter::JSON