So, how does the JSON data look like, with and without the problematic array? Also show the relevant code.
From your description, I guess something like this for the JSON:
With the array:
{ "foo" : 42, "bar" : 4711, "the_array" : [ 1,2,3 ] }
Without the array:
{ "foo" : 42, "bar" : 4711 }
I assume that you use JSON::XS or something with a similar API, so after a call to decode_json(), you have a hash reference like this:
$data={ foo => 42, bar => 4711, the_array => [ 1,2,3 ] }
Or like this:
$data={ foo => 42, bar => 4711 }
If your code accesses the array as @{$data->{'the_array'}}, it will of course fail. Check with exists $data->{'the_array'} before accessing it.
Maybe the JSON generator writes "the_array" : null in the problematic case. In that case $data->{'the_array'} will exist in Perl, but it will be undef. Test with defined $data->{'the_array'} before accessing the array.
With recent perl versions, you can also "replace" a missing array with a default array using the defined-or operator: @{$data->{'the_array'}//['default','values','here']}.
Alexander
In reply to Re: Undefined value as an ARRAY reference, JSON data
by afoken
in thread Undefined value as an ARRAY reference, JSON data
by johnfl68
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |