| Revision: | 1.1 |
| Committed: | Fri Mar 23 15:10:55 2007 UTC (19 years, 5 months ago) by root |
| Content type: | application/x-troff |
| Branch: | MAIN |
| CVS Tags: | rel-2_01, rel-2_3, 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-4_04, 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 *** |
| # | 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 |