NAME
    JSON::MaybeXS - use Cpanel::JSON::XS with a fallback to JSON::PP

SYNOPSIS
      use JSON::MaybeXS;

      my $data_structure = decode_json($json_input);

      my $json_output = encode_json($data_structure);

      my $json = JSON->new;

DESCRIPTION
    This module tries to load Cpanel::JSON::XS, and if that fails instead
    tries to load JSON::PP. If neither is available, an exception will be
    thrown.

    It then exports the "encode_json" and "decode_json" functions from the
    loaded module, along with a "JSON" constant that returns the class name
    for calling "new" on.

EXPORTS
    All of "encode_json", "decode_json" and "JSON" are exported by default.

    To import only some symbols, specify them on the "use" line:

      use JSON::MaybeXS qw(encode_json decode_json); # functions only

      use JSON::MaybeXS qw(JSON); # JSON constant only

  encode_json
    This is the "encode_json" function provided by the selected
    implementation module, and takes a perl data stucture which is
    serialised to JSON text.

      my $json_text = encode_json($data_structure);

  decode_json
    This is the "decode_json" function provided by the selected
    implementation module, and takes a string of JSON text to deserialise to
    a perl data structure.

      my $data_structure = decode_json($json_text);

  JSON
    The "JSON" constant returns the selected implementation module's name
    for use as a class name - so:

      my $json_obj = JSON->new; # returns a Cpanel::JSON::XS or JSON::PP object

    and that object can then be used normally:

      my $data_structure = $json_obj->decode($json_text); # etc.

AUTHOR
    mst - Matt S. Trout (cpan:MSTROUT) <mst@shadowcat.co.uk>

CONTRIBUTORS
    None yet. Well volunteered? :)

COPYRIGHT
    Copyright (c) 2013 the "JSON::MaybeXS" "AUTHOR" and "CONTRIBUTORS" as
    listed above.

LICENSE
    This library is free software and may be distributed under the same
    terms as perl itself.

