Revision: | 1.1 |
Committed: | Fri Mar 23 15:10:55 2007 UTC (17 years, 2 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 *** |
# | Content |
---|---|
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 |