use warnings;
use strict;
use JSON::XS;
use Try::Tiny;
my %json = (
empty_obj => "{}",
empty_array => "[]",
bare_string => "hai",
obj => qq|{"o":"hai"}|,
bad_obj => qq|{o:hai}|,
);
for my $name ( keys %json )
{
printf "%11s --> ", $name;
try {
my $throw_away = decode_json($json{$name});
print "OK!\n";
} catch {
print "Error: $_";
};
}
__END__
obj --> OK!
bare_string --> Error: malformed JSON string, neither array, object, n
+umber, string or atom, at character offset 0 (before "hai") at ...
empty_obj --> OK!
bad_obj --> Error: '"' expected, at character offset 1 (before "o:
+hai}") at ...
empty_array --> OK!
|