I've recently released a JSON converter for Perl on CPAN called
JSON::DWIW. Most of the work is done in C for speed. I have found it
to be faster than JSON.pm or JSON::Syck. It currently assumes
everything is in utf-8. I would appreciate any feedback you might have.
DWIW stands for "Do What I Want", meaning Perl objects get output as
their underlying data structures by default (except for Math::BigInt
and Math::BigFloat objects, which are output as numbers). When
converting to JSON, the module should only return an error if a string
in the input data structure contains a bad utf-8 sequence. When
converting from JSON, numbers that are too long for your platform get
converted to Math::BigInt or Math::BigFloat objects, if you have those
modules installed. Otherwise, the longer numbers get converted to
strings to help prevent data loss.
You can get the module from
or you can install it by using CPAN.pm, e.g.,
perl -MCPAN -e 'install JSON::DWIW'