1f3efcd01Safresh1# copied over from JSON::XS and modified to use JSON::PP 2f3efcd01Safresh1 3f3efcd01Safresh1# copied over from JSON::DWIW and modified to use JSON::PP 4f3efcd01Safresh1 5f3efcd01Safresh1# Creation date: 2007-02-20 19:51:06 6f3efcd01Safresh1# Authors: don 7f3efcd01Safresh1 8f3efcd01Safresh1use strict; 9256a93a4Safresh1use warnings; 10*f2a19305Safresh1use Test::More tests => 5; 11f3efcd01Safresh1 12f3efcd01Safresh1# main 13f3efcd01Safresh1{ 14f3efcd01Safresh1 BEGIN { $ENV{PERL_JSON_BACKEND} = 0; } 15f3efcd01Safresh1 16f3efcd01Safresh1use JSON::PP; 17f3efcd01Safresh1 18f3efcd01Safresh1 my $data; 19f3efcd01Safresh1 20f3efcd01Safresh1 # my $expected_str = '{"var1":"val1","var2":["first_element",{"sub_element":"sub_val","sub_element2":"sub_val2"}],"var3":"val3"}'; 21f3efcd01Safresh1 22f3efcd01Safresh1 my $expected_str1 = '{"var1":"val1","var2":["first_element",{"sub_element":"sub_val","sub_element2":"sub_val2"}]}'; 23f3efcd01Safresh1 my $expected_str2 = '{"var2":["first_element",{"sub_element":"sub_val","sub_element2":"sub_val2"}],"var1":"val1"}'; 24f3efcd01Safresh1 my $expected_str3 = '{"var2":["first_element",{"sub_element2":"sub_val2","sub_element":"sub_val"}],"var1":"val1"}'; 25f3efcd01Safresh1 my $expected_str4 = '{"var1":"val1","var2":["first_element",{"sub_element2":"sub_val2","sub_element":"sub_val"}]}'; 26f3efcd01Safresh1 27f3efcd01Safresh1 my $json_obj = JSON::PP->new->allow_nonref (1); 28f3efcd01Safresh1 my $json_str; 29f3efcd01Safresh1 # print STDERR "\n" . $json_str . "\n\n"; 30f3efcd01Safresh1 31f3efcd01Safresh1 my $expected_str; 32f3efcd01Safresh1 33f3efcd01Safresh1 $data = 'stuff'; 34f3efcd01Safresh1 $json_str = $json_obj->encode($data); 35f3efcd01Safresh1 ok($json_str eq '"stuff"'); 36f3efcd01Safresh1 37f3efcd01Safresh1 $data = "stu\nff"; 38f3efcd01Safresh1 $json_str = $json_obj->encode($data); 39f3efcd01Safresh1 ok($json_str eq '"stu\nff"'); 40f3efcd01Safresh1 41f3efcd01Safresh1 $data = [ 1, 2, 3 ]; 42f3efcd01Safresh1 $expected_str = '[1,2,3]'; 43f3efcd01Safresh1 $json_str = $json_obj->encode($data); 44f3efcd01Safresh1 45f3efcd01Safresh1 ok($json_str eq $expected_str); 46f3efcd01Safresh1 47f3efcd01Safresh1 $data = { var1 => 'val1', var2 => 'val2' }; 48f3efcd01Safresh1 $json_str = $json_obj->encode($data); 49f3efcd01Safresh1 50f3efcd01Safresh1 ok($json_str eq '{"var1":"val1","var2":"val2"}' 51f3efcd01Safresh1 or $json_str eq '{"var2":"val2","var1":"val1"}'); 52f3efcd01Safresh1 53f3efcd01Safresh1 $data = { var1 => 'val1', 54f3efcd01Safresh1 var2 => [ 'first_element', 55f3efcd01Safresh1 { sub_element => 'sub_val', sub_element2 => 'sub_val2' }, 56f3efcd01Safresh1 ], 57f3efcd01Safresh1 # var3 => 'val3', 58f3efcd01Safresh1 }; 59f3efcd01Safresh1 60f3efcd01Safresh1 $json_str = $json_obj->encode($data); 61f3efcd01Safresh1 62f3efcd01Safresh1 ok($json_str eq $expected_str1 or $json_str eq $expected_str2 63f3efcd01Safresh1 or $json_str eq $expected_str3 or $json_str eq $expected_str4); 64f3efcd01Safresh1} 65f3efcd01Safresh1 66f3efcd01Safresh1exit 0; 67f3efcd01Safresh1 68f3efcd01Safresh1############################################################################### 69f3efcd01Safresh1# Subroutines 70f3efcd01Safresh1 71