ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/JSON-XS/t/05_dwiw_decode.t
Revision: 1.1
Committed: Fri Mar 23 15:10:55 2007 UTC (17 years, 3 months ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-2_01, rel-1_11, rel-1_51, rel-1_53, rel-4_0, rel-2_222, rel-0_31, rel-3_0, rel-4_01, rel-4_03, rel-4_02, rel-2_2, rel-2_3, rel-2_0, rel-2_1, rel-0_3, rel-4_0_00, rel-0_5, rel-0_7, rel-0_8, rel-2_34, rel-2_32, rel-2_33, rel-2_31, rel-1_1, rel-1_0, rel-1_3, rel-1_2, rel-1_5, rel-1_4, rel-2_2311, rel-1_01, rel-1_24, rel-3_01, rel-3_02, rel-3_03, rel-3_04, rel-1_21, rel-1_22, rel-1_23, rel-1_43, rel-1_41, rel-2_232, rel-2_231, rel-2_29, rel-2_28, rel-2_21, rel-2_2222, rel-2_23, rel-2_22, rel-2_25, rel-2_24, rel-2_27, rel-2_26, HEAD
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #! perl
2    
3     # copied over from JSON::DWIW and modified to use JSON::XS
4    
5     # Creation date: 2007-02-20 21:54:09
6     # Authors: don
7    
8     use strict;
9     use warnings;
10     use Test;
11    
12     # main
13     {
14     BEGIN { plan tests => 7 }
15    
16     use JSON::XS;
17    
18     my $json_str = '{"var1":"val1","var2":["first_element",{"sub_element":"sub_val","sub_element2":"sub_val2"}],"var3":"val3"}';
19    
20     my $json_obj = JSON::XS->new->allow_nonref(1);
21     my $data = $json_obj->decode($json_str);
22    
23     my $pass = 1;
24     if ($data->{var1} eq 'val1' and $data->{var3} eq 'val3') {
25     if ($data->{var2}) {
26     my $array = $data->{var2};
27     if (ref($array) eq 'ARRAY') {
28     if ($array->[0] eq 'first_element') {
29     my $hash = $array->[1];
30     if (ref($hash) eq 'HASH') {
31     unless ($hash->{sub_element} eq 'sub_val'
32     and $hash->{sub_element2} eq 'sub_val2') {
33     $pass = 0;
34     }
35     }
36     else {
37     $pass = 0;
38     }
39     }
40     else {
41     $pass = 0;
42     }
43     }
44     else {
45     $pass = 0;
46     }
47     }
48     else {
49     $pass = 0;
50     }
51     }
52    
53     ok($pass);
54    
55     $json_str = '"val1"';
56     $data = $json_obj->decode($json_str);
57     ok($data eq 'val1');
58    
59     $json_str = '567';
60     $data = $json_obj->decode($json_str);
61     ok($data == 567);
62    
63     $json_str = "5e1";
64     $data = $json_obj->decode($json_str);
65     ok($data == 50);
66    
67     $json_str = "5e3";
68     $data = $json_obj->decode($json_str);
69     ok($data == 5000);
70    
71     $json_str = "5e+1";
72     $data = $json_obj->decode($json_str);
73     ok($data == 50);
74    
75     $json_str = "5e-1";
76     $data = $json_obj->decode($json_str);
77     ok($data == 0.5);
78    
79    
80    
81    
82     # use Data::Dumper;
83     # print STDERR Dumper($test_data) . "\n\n";
84    
85     }
86    
87     exit 0;
88    
89     ###############################################################################
90     # Subroutines
91