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, 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 ***

File Contents

# 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