diff --git a/lib/SQL/Translator/Producer/JSON.pm b/lib/SQL/Translator/Producer/JSON.pm index 0095316d3..bde0cca33 100644 --- a/lib/SQL/Translator/Producer/JSON.pm +++ b/lib/SQL/Translator/Producer/JSON.pm @@ -61,7 +61,9 @@ sub produce { }, { allow_blessed => 1, allow_unknown => 1, - %{$translator->producer_args}, + ( map { $_ => $translator->producer_args->{$_} } + grep { defined $translator->producer_args->{$_} } + qw[ pretty indent canonical ] ), }); } diff --git a/t/23json.t b/t/23json.t index 0b063e2cc..bbaf4e42c 100644 --- a/t/23json.t +++ b/t/23json.t @@ -276,7 +276,8 @@ my $json = to_json(from_json(< 1, pretty => 1 }); "parser_type" : "SQL::Translator::Parser::SQLite", "producer_args" : { "canonical" : 1, - "pretty" : 1 + "pretty" : 1, + "totally_bogus_arg_to_test_arg_filtering_to_json" : 1 }, "producer_type" : "SQL::Translator::Producer::JSON", "show_warnings" : 0, @@ -296,6 +297,7 @@ my $tr = SQL::Translator->new( producer_args => { canonical => 1, pretty => 1, + totally_bogus_arg_to_test_arg_filtering_to_json => 1, }, data => $data, );