| JavaScript-Dumper documentation | Contained in the JavaScript-Dumper distribution. |
JavaScript::Dumper - Dump JavaScript data structures from Perl objects. Allows unquoted strings and numbers.
use JavaScript::Dumper;
my $js = js_dumper([{foo => "bar", number => 12345, boolean => \1, call => \"function"}]);
# results in:
# $js = "[{"foo": "bar", "number" => 12345, "boolean" => true, "call": function}]";
This module uses JSON::PP as base and overrides value_to_json to accept SCALAR-refs to be returned without quotes.
Returns JavaScript::Dumper object.
For all other methods see JSON::PP and JSON::XS.
JavaScript::Dumper is as slow as JSON::PP. You might want to cache the output or use it only for small objects.
Find someone who does a speedy version of this module
Moritz Onken (perler)
Copyright 2007 by Moritz Onken
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| JavaScript-Dumper documentation | Contained in the JavaScript-Dumper distribution. |
package JavaScript::Dumper; use 5.005; use strict; use warnings; require Exporter; use base "JSON::PP"; use overload; use Carp (); use B (); use Class::C3; $JavaScript::Dumper::VERSION = '0.011'; @JavaScript::Dumper::EXPORT = qw(js_dumper); my $JSON; # cache sub js_dumper ($) { # encode ($JSON ||= __PACKAGE__->new)->encode(@_); } sub value_to_json { my ($self, $value) = @_; my $type = ref($value); if (!defined $value) { return "null"; } elsif($type eq "SCALAR") { return "true" if($$value eq "1"); return "false" if($$value eq "0"); return $$value; } elsif(!$type && $value =~ /^\d+$/ ) { return $value if( int($value) eq $value); } $self->next::method($value); } 1; __END__