The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More;
use strict;
BEGIN { plan tests => 12 };
use JSON;

my $json = new JSON;
my ($js,$obj);

$obj = {"id" => JSON::Number("1.02")};
{ local $JSON::AUTOCONVERT = 0;
	$js = objToJson($obj);
	is($js,'{"id":1.02}');
	$js = $json->objToJson($obj);
	is($js,'{"id":1.02}');
}

	$js = $json->objToJson($obj);
	is($js,'{"id":1.02}');

$obj = {"id" => "1.02"};

{ local $JSON::AUTOCONVERT = 0;
	$js = objToJson($obj);
	is($js,'{"id":"1.02"}');

	$json->autoconv(0);
	$js = $json->objToJson($obj);
	is($js,'{"id":"1.02"}');
}

	$js = objToJson($obj);
	is($js,'{"id":1.02}');

	$js = $json->objToJson($obj);
	is($js,'{"id":"1.02"}');

	$json->autoconv(1);
	$js = $json->objToJson($obj);
	is($js,'{"id":1.02}');


$obj = {"id" => 1.02};
{ local $JSON::AUTOCONVERT = 0;
	$js = objToJson($obj);
#	is($js,'{"id":"1.02"}');
	is($js,'{"id":1.02}'); # Since JSON 1.12, works correctly even though non autoconv.
}

	$js = objToJson($obj);
	is($js,'{"id":1.02}');

	$json = new JSON (autoconv => 0);
	$js = $json->objToJson($obj);
#	is($js,'{"id":"1.02"}');
	is($js,'{"id":1.02}'); # Since JSON v1.12, works correctly even though non autoconv.

	$json = new JSON (autoconv => 1);
	$js = $json->objToJson($obj);
	is($js,'{"id":1.02}');