NAME

Jifty::JSON -- Wrapper around JSON

SYNOPSIS

  use Jifty::JSON qw/decode_json encode_json/;

  my $obj  = decode_json(q! { "x": "1", "y": "2", "z": "3" } !);
  my $json = encode_json($obj);

DESCRIPTION

Provides a thin wrapper around the JSON 2.xx library, which provides a frontend for JSON::XS and JSON::PP.

This module used to wrap JSON::Syck and JSON 1.xx with special-casing for outputting JSON with single quoted values. Single quotes make it easy to simply plop JSON into HTML attributes but are in violation of the JSON spec which mandates only double quoted strings.

The old behavior is now unsupported and it is recommended that you simply HTML escape your entire blob of JSON if you are sticking it in an HTML attribute. You can use Jifty->web->escape() to properly escape problematic characters for HTML.

FUNCTIONS

decode_json JSON, [ARGUMENT HASHREF]

encode_json JSON, [ARGUMENT HASHREF]

These functions are just like JSON's, except that you can pass options to them like you can with JSON's from_json and to_json functions.

By default they encode/decode using UTF8 (like JSON's functions of the same name), but you can turn that off by passing utf8 => 0 in the options. The allow_nonref flag is also enabled for backwards compatibility with earlier versions of this module. It allows encoding/decoding of values that are not references.

JSON is imported with the -support_by_pp flag in order to support all options that JSON::PP provides when using JSON::XS as the backend. If you are concerned with speed, be careful what options you specify as it may cause the pure Perl backend to be used. Read "JSON::PP SUPPORT METHODS" in JSON for more information.

DEPRECATED FUNCTIONS

jsonToObj JSON, [ARGUMENTS]

objToJson JSON, [ARGUMENTS]

These functions are deprecated and provided for backwards compatibility. They wrap the appropriate function above, but "croak" in Carp if you try to set the singlequote option.

LICENSE

Jifty is Copyright 2005-2010 Best Practical Solutions, LLC. Jifty is distributed under the same terms as Perl itself.