use JSON; my $json = '{ "o": "hai", "hurr": "derp" }'; my $data = decode_json( $json ); print $data->{o}, $/; # Prints "hai" #### print encode_json($data), $/; # Prints: {"hurr":"derp","o":"hai"} #### # Some plain Perl- my @stuf = ( 1, 2, 3 ); # Or, idiomatically ( 1..3 ) print encode_json(\@stuf), $/; # Need \ to take reference. # Same outcome as [] for array ref plus 1..3- print encode_json( [ 1 .. 3 ] ), $/; #### {"OWNER":"KeyProjects","age1":"eon","ht1":"moo","wc":"EF1"} #### {"OWNER":"KeyProjects","scheduled":{"age1":"eon","ht1":"moo"},"wc":"EF1"} #### use warnings; use strict; use JSON; my $original = '{"OWNER":"KeyProjects","age1":"eon","ht1":"moo"}'; my $desired = '{"OWNER":"KeyProjects","scheduled":{"age1":"eon","ht1":"moo"}}'; my $data = decode_json($original); print "The owner is; ", $data->{OWNER}, $/; print "age1 is: ", $data->{age1}, $/; my $age = delete $data->{age1}; print "age1 is now: ", $data->{age1}, $/; # Empty, we deleted it... # ...while putting it into- print "Here I am: $age\n"; # \n = $/, usually/sort-of. my $ht = delete $data->{ht1}; my %sub_hash = ( ht1 => $ht, age1 => $age ); # Perl auto-vivivies data- $data->{scheduled} = \%sub_hash; # \% is like {} print encode_json( $data ), $/; # {"scheduled":{"age1":"eon","ht1":"moo"},"OWNER":"KeyProjects"} # Remember, order is irrelevant in Objects. #### use warnings; use strict; use JSON; my $original = '{"OWNER":"KeyProjects","age1":null,"ht1":null}'; my $desired = '{"OWNER":"KeyProjects","scheduled":{"age1":null,"ht1":null}}'; my $data = decode_json($original); for my $key ( keys %{ $data } ) { print "Found a key: $key", $/; if ( $key =~ /\A (?: age\d+ | ht\d+ ) \z/x ) { print " -> It matches our regular expression\n"; print " -> Deleting it from data structure\n"; my $value = delete $data->{$key}; print " -> Putting it back under sub-structure with key 'scheduled'\n"; $data->{scheduled}{$key} = $value; } else { print " -> It's fine where it is, no action taken\n"; } } print encode_json( $data ), $/; #### use Test::More; my $desired_data = decode_json( $desired ); is_deeply( $desired_data, $data, "Data structures match" ); done_testing(1);