use strict;
use Test::More;
BEGIN { plan tests => 3 };
BEGIN { $ENV{PERL_JSON_BACKEND} = 1; }
use JSON -convert_blessed_universally;
SKIP: {
skip "can't use JSON::XS.", 3, unless( JSON->backend->is_xs );
my $obj = Test->new( [ 1, 2, {foo => 'bar'} ] );
$obj->[3] = Test2->new( { a => 'b' } );
my $json = JSON->new->allow_blessed->convert_blessed;
is( $json->encode( $obj ), '[1,2,{"foo":"bar"},"hoge"]' );
$json->convert_blessed(0);
is( $json->encode( $obj ), 'null' );
$json->allow_blessed(0)->convert_blessed(1);
is( $json->encode( $obj ), '[1,2,{"foo":"bar"},"hoge"]' );
}
package Test;
sub new {
bless $_[1], $_[0];
}
package Test2;
sub new {
bless $_[1], $_[0];
}
sub TO_JSON {
"hoge";
}