{ "1": {"subject1": "value", "subject2": [{"subject3": "value", "subject4": "value"}], "subject5": "value", "subject6": value, "subject7": "value"}, "2": {"subject1": "value", "subject2": [{"subject3": "value", "subject4": "value"}], "subject5": "value", "subject6": value, "subject7": "value"}, "3": {"subject1": "value", "subject2": [{"subject3": "value", "subject4": "value"}], "subject5": "value", "subject6": value, "subject7": "value"}, #### DATA [ "1": {"subject1": "value"}, "2": {"subject1": "value"} ] #### my $jsonoutput = "Above raw JSON format..."; my $json = new JSON; my $jsontext = $json->allow_nonref->utf8->relaxed->escape_slash->loose->allow_singlequote->allow_barekey->decode("$jsonoutput"); foreach my $stuff(@{$json->{1}}){ my %hash = (); $hash{subject1} = $stuff->{subject1}; }