CropCircle has asked for the wisdom of the Perl Monks concerning the following question:
Hi! I try to write json structure in file, one of the fields contains a number. So I get an error, which points out that this number is an encountered object:
use strict; use warnings; use JSON::PP; my $json = { 'book' => { 'title' => JSON::PP::true, 'pages' => 5.03 #this number } }; open my $fh, '>', 'data_out.json'; print $fh encode_json($json); #this line is in error close $fh;
If I make 'pages' => '5.03' - there are no erros BUT I need exactly 5.03 without quotes. Is there any way to make it work? THanks!
UPDATED!
use strict; use warnings; #convert all constant numbers to objects #it converted 5.03 to an object and it caused the error use bignum; use JSON::PP; # some code where "bignum" is used # ... no bignum; # exclude bignum usage my $json = { 'book' => { 'title' => JSON::PP::true, 'pages' => 5.03 #this number } }; open my $fh, '>', 'data_out.json'; print $fh encode_json($json); #this line is in error close $fh;
Also I checked this code for perl 5.10 and 5.20 - I get the same errors when using "bignum" and have no errors in both cases without "bignum". So, there are NO version dependencies (in this case)
|
---|