Provided by: libmojolicious-perl_4.63+dfsg-1_all 

NAME
Mojo::JSON - Minimalistic JSON
SYNOPSIS
use Mojo::JSON;
# Encode and decode JSON
my $json = Mojo::JSON->new;
my $bytes = $json->encode({foo => [1, 2], bar => 'hello!', baz => \1});
my $hash = $json->decode($bytes);
# Check for errors
my $json = Mojo::JSON->new;
if (defined(my $hash = $json->decode($bytes))) { say $hash->{message} }
else { say 'Error: ', $json->error }
# Use the alternative interface
use Mojo::JSON 'j';
my $bytes = j({foo => [1, 2], bar => 'hello!', baz => \1});
my $hash = j($bytes);
DESCRIPTION
Mojo::JSON is a minimalistic and possibly the fastest pure-Perl implementation of RFC 4627.
It supports normal Perl data types like "Scalar", "Array" reference, "Hash" reference and will try to
call the "TO_JSON" method on blessed references, or stringify them if it doesn't exist. Differentiating
between strings and numbers in Perl is hard, depending on how it has been used, a "Scalar" can be both at
the same time. Since numeric comparisons on strings are very unlikely to happen intentionally, the
numeric value always gets priority, so any "Scalar" that has been used in numeric context is considered a
number.
[1, -2, 3] -> [1, -2, 3]
{"foo": "bar"} -> {foo => 'bar'}
Literal names will be translated to and from Mojo::JSON constants or a similar native Perl value.
true -> Mojo::JSON->true
false -> Mojo::JSON->false
null -> undef
In addition "Scalar" references will be used to generate booleans, based on if their values are true or
false.
\1 -> true
\0 -> false
Decoding UTF-16 (LE/BE) and UTF-32 (LE/BE) will be handled transparently, encoding will only generate
UTF-8. The two Unicode whitespace characters "u2028" and "u2029" will always be escaped to make JSONP
easier.
FUNCTIONS
Mojo::JSON implements the following functions.
j
my $bytes = j([1, 2, 3]);
my $bytes = j({foo => 'bar'});
my $array = j($bytes);
my $hash = j($bytes);
Encode Perl data structure or decode JSON and return "undef" if decoding fails.
ATTRIBUTES
Mojo::JSON implements the following attributes.
error
my $err = $json->error;
$json = $json->error('Parser error');
Parser errors.
METHODS
Mojo::JSON inherits all methods from Mojo::Base and implements the following new ones.
decode
my $array = $json->decode($bytes);
my $hash = $json->decode($bytes);
Decode JSON to Perl data structure and return "undef" if decoding fails.
encode
my $bytes = $json->encode([1, 2, 3]);
my $bytes = $json->encode({foo => 'bar'});
Encode Perl data structure to JSON.
false
my $false = Mojo::JSON->false;
my $false = $json->false;
False value, used because Perl has no native equivalent.
true
my $true = Mojo::JSON->true;
my $true = $json->true;
True value, used because Perl has no native equivalent.
SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.
perl v5.18.1 2013-11-19 Mojo::JSON(3pm)