]>
Commit | Line | Data |
---|---|---|
75459410 JH |
1 | #!/usr/bin/perl |
2 | use strict; | |
3 | use warnings; | |
4 | use JSON; | |
5 | ||
6 | sub dump_array { | |
7 | my ($label_in, $ary_ref) = @_; | |
8 | my @ary = @$ary_ref; | |
9 | ||
10 | for ( my $i = 0; $i <= $#{ $ary_ref }; $i++ ) | |
11 | { | |
12 | my $label = "$label_in\[$i\]"; | |
13 | dump_item($label, $ary[$i]); | |
14 | } | |
15 | } | |
16 | ||
17 | sub dump_hash { | |
18 | my ($label_in, $obj_ref) = @_; | |
19 | my %obj = %$obj_ref; | |
20 | ||
21 | foreach my $k (sort keys %obj) { | |
22 | my $label = (length($label_in) > 0) ? "$label_in.$k" : "$k"; | |
23 | my $value = $obj{$k}; | |
24 | ||
25 | dump_item($label, $value); | |
26 | } | |
27 | } | |
28 | ||
29 | sub dump_item { | |
30 | my ($label_in, $value) = @_; | |
31 | if (ref($value) eq 'ARRAY') { | |
32 | print "$label_in array\n"; | |
33 | dump_array($label_in, $value); | |
34 | } elsif (ref($value) eq 'HASH') { | |
35 | print "$label_in hash\n"; | |
36 | dump_hash($label_in, $value); | |
8c97e387 ÆAB |
37 | } elsif (ref $value) { |
38 | my $bool = $value ? 1 : 0; | |
39 | print "$label_in $bool\n"; | |
75459410 JH |
40 | } elsif (defined $value) { |
41 | print "$label_in $value\n"; | |
42 | } else { | |
43 | print "$label_in null\n"; | |
44 | } | |
45 | } | |
46 | ||
47 | my $row = 0; | |
48 | while (<>) { | |
49 | my $data = decode_json( $_ ); | |
50 | my $label = "row[$row]"; | |
51 | ||
52 | dump_hash($label, $data); | |
53 | $row++; | |
54 | } | |
55 |