NAME
   Error::Pure::Output::JSON - Output JSON subroutines for Error::Pure.

SYNOPSIS
    use Error::Pure::Output::JSON qw(err_json);
    print err_json(@errors);

SUBROUTINES
   "err_json(@errors)"
            JSON print of backtrace.
            When is set global variable $PRETTY, print pretty output.
            Returns JSON serialization of backtrace.

VARIABLES
   $PRETTY
            JSON pretty output flag. Possible values are 0 or 1.
            Default value is 0.

EXAMPLE1
    # Pragmas.
    use strict;
    use warnings;

    # Modules.
    use Error::Pure::Output::JSON qw(err_json);

    # Fictional error structure.
    my $err_hr = {
            'msg' => [
                    'FOO',
                    'KEY',
                    'VALUE',
            ],
            'stack' => [
                    {
                            'args' => '(2)',
                            'class' => 'main',
                            'line' => 1,
                            'prog' => 'script.pl',
                            'sub' => 'err',
                    }, {
                            'args' => '',
                            'class' => 'main',
                            'line' => 20,
                            'prog' => 'script.pl',
                            'sub' => 'eval {...}',
                    }
            ],
    };

    # Print out.
    print err_json($err_hr);

    # Output:
    # {"msg":["FOO","KEY","VALUE"],"stack":[{"sub":"err","prog":"script.pl","args":"(2)","class":"main","line":1},{"sub":"eval {...}","prog":"script.pl","args":"","class":"main","line":20}]}

EXAMPLE2
    # Pragmas.
    use strict;
    use warnings;

    # Modules.
    use Error::Pure::Output::JSON qw(err_json);

    # Set pretty output.
    $Error::Pure::Output::JSON::PRETTY = 1;

    # Fictional error structure.
    my $err_hr = {
            'msg' => [
                    'FOO',
                    'KEY',
                    'VALUE',
            ],
            'stack' => [
                    {
                            'args' => '(2)',
                            'class' => 'main',
                            'line' => 1,
                            'prog' => 'script.pl',
                            'sub' => 'err',
                    }, {
                            'args' => '',
                            'class' => 'main',
                            'line' => 20,
                            'prog' => 'script.pl',
                            'sub' => 'eval {...}',
                    }
            ],
    };

    # Print out.
    print err_json($err_hr);

    # Output:
    # {
    #    "msg" : [
    #       "FOO",
    #       "KEY",
    #       "VALUE"
    #    ],
    #    "stack" : [
    #       {
    #          "sub" : "err",
    #          "prog" : "script.pl",
    #          "args" : "(2)",
    #          "class" : "main",
    #          "line" : 1
    #       },
    #       {
    #          "sub" : "eval {...}",
    #          "prog" : "script.pl",
    #          "args" : "",
    #          "class" : "main",
    #          "line" : 20
    #       }
    #    ]
    # }

DEPENDENCIES
   Exporter, JSON, Readonly.

SEE ALSO
   Error::Pure, Error::Pure::Output::Text.

REPOSITORY
   <https://github.com/tupinek/Error-Pure-Output-JSON>

AUTHOR
   Michal Špaček <mailto:[email protected]>

   <http://skim.cz>

LICENSE AND COPYRIGHT
   BSD license.

VERSION
   0.09