The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

JSON::Decode::Marpa - JSON parser using Marpa

VERSION

This document describes version 0.02 of JSON::Decode::Marpa (from Perl distribution JSON-Decode-Marpa), released on 2014-08-27.

SYNOPSIS

 use JSON::Decode::Marpa qw(from_json);
 my $data = from_json(q([1, true, "a", {"b":null}]));

DESCRIPTION

This module is based on MarpaX::Demo::JSONParser (using json.2.bnf), but offers a more convenient interface for JSON decoding. I packaged this for casual benchmarking against Pegex::JSON and JSON::Decode::Regexp.

The result on my computer: Pegex::JSON and JSON::Decode::Marpa are roughly the same speed (but Pegex has a much smaller startup overhead than Marpa). JSON::Decode::Regexp is about an order of magnitude faster than this module, and JSON::XS is about three orders of magnitude faster. So that's that.

This is the benchmark code used:

 use 5.010;
 use strict;
 use warnings;

 use Benchmark qw(timethese);
 use JSON::Decode::Marpa ();
 use JSON::Decode::Regexp ();
 use JSON::XS ();
 use Pegex::JSON;

 my $json = q([1,"abc\ndef",-2.3,null,[],[1,2,3],{},{"a":1,"b":2}]);
 my $pgx  = Pegex::JSON->new;

 timethese -0.5, {
     pegex  => sub { $pgx->load($json) },
     regexp => sub { JSON::Decode::Regexp::from_json($json) },
     marpa  => sub { JSON::Decode::Marpa::from_json($json) },
     xs     => sub { JSON::XS::decode_json($json) },
 };

FUNCTIONS

from_json($str) => DATA

Decode JSON in $str. Dies on error.

FAQ

SEE ALSO

JSON, JSON::PP, JSON::XS, JSON::Tiny, JSON::Decode::Regexp, Pegex::JSON.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/JSON-Decode-Marpa.

SOURCE

Source repository is at https://github.com/perlancar/perl-JSON-Decode-Marpa.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=JSON-Decode-Marpa

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.