r::JSON;
use strict;
use warnings;
no warnings 'uninitialized';
our $VERSION = '0.8.04';
use parent 'Data::Transit::Reader';
use JSON;
sub _decode {
my ($self, $data) = @_;
return decode_json($d
r::JSON;
use strict;
use warnings;
no warnings 'uninitialized';
our $VERSION = '0.8.04';
use parent 'Data::Transit::Writer';
use JSON;
sub _encode {
my ($self, $data) = @_;
return encode_json($d
JSON;
sub new {
my ($class, %args) = @_;
return bless {
%args,
cache => [],
cache_counter => 0,
}, $class;
}
sub read {
my ($self, $json) = @_;
return $self->_convert($self->_decode($json
sub _convert {
my ($self, $json) = @_;
if (ref($json) eq 'ARRAY') {
return $self->_convert($json->[1]) if $json->[0] eq "~#'";
if ($self->_cache($json->[0], $json->[0] =~ /^~#/) =~ /^~#(.+)$/
$json[1..$#$json]);
}
return $self->_convert_map($json) if $json->[0] eq "^ ";
return [map {$self->_convert($_)} @$json];
} else {
return "" if $json eq "~_";
return $json ? 1 : 0 if JSON:
e Data::Transit::Reader::JSON;
use Data::Transit::Reader::MessagePack;
use Data::Transit::Reader::JSONVerbose;
use Data::Transit::Writer::JSON;
use Data::Transit::Writer::JSONVerbose;
use Data::Transi
use Data::Transit;
my $writer = Data::Transit::writer($fh, 'json');
$writer->write($value);
my $reader = Data::Transit::reader('json');
my $val = $reader->read($value);
For example:
use Data
it::writer($fh, 'json');
$writer->write(["abc", 12345]);
my $reader = Data::Transit::reader('json');
my $vals = $reader->read($output);
Instead of json, you may also provide json-verbose and mess
it::Writer;
use strict;
use warnings;
no warnings 'uninitialized';
our $VERSION = '0.8.04';
use JSON;
use Carp qw(confess);
sub new {
my ($class, $output, %args) = @_;
bless {
%args,
output =
ackage Data::Transit::Reader::JSONVerbose;
use strict;
use warnings;
no warnings 'uninitialized';
our $VERSION = '0.8.04';
use parent 'Data::Transit::Reader';
use JSON;
use List::MoreUtils qw(any);
rn decode_json($data);
}
sub _cache {
my ($self, $data) = @_;
return $data;
}
sub _convert {
my ($self, $json) = @_;
if (ref($json) eq 'HASH') {
return $self->SUPER::_convert([%$json]) if any
{$_ =~ /^~#/} keys %$json;
}
return $self->SUPER::_convert($json);
}
1;
ackage Data::Transit::Writer::JSONVerbose;
use strict;
use warnings;
no warnings 'uninitialized';
our $VERSION = '0.8.04';
use parent 'Data::Transit::Writer';
use JSON;
sub new {
my ($self, $outp
eturn $self->SUPER::new($output, %args);
}
sub _encode {
my ($self, $data) = @_;
return encode_json($data);
}
sub _wrap_top_level_scalar {
my ($self, $converted_data) = @_;
return {"~#'" => $con