From 0b539d566a37c85b84eb1f7374e35d510060e16f Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Fri, 3 Feb 2017 11:35:36 +0000 Subject: [PATCH] 98_JsonList2.pm: fix problem with filter (Forum #45328) git-svn-id: https://svn.fhem.de/fhem/trunk@13320 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_JsonList2.pm | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/fhem/FHEM/98_JsonList2.pm b/fhem/FHEM/98_JsonList2.pm index dcd5672b3..7021bb742 100644 --- a/fhem/FHEM/98_JsonList2.pm +++ b/fhem/FHEM/98_JsonList2.pm @@ -34,16 +34,13 @@ JsonList2_Escape($) sub JsonList2_dumpHash($$$$$$) { - my ($arrp, $name, $h, $isReading, $si, $attr) = @_; + my ($arrp, $name, $h, $isReading, $showInternal, $attr) = @_; my $ret = ""; - my %filter; - @filter{ @$attr } = (undef) x @$attr if @$attr; + my %filter = map { $_=>1 } @$attr if(@$attr); - my @arr = grep { $si || $_ !~ m/^\./ - and $isReading || !ref($h->{$_}) - and !%filter || exists $filter{$_} - } sort keys %{$h}; - + my @arr = grep { ($showInternal || $_ !~ m/^\./) && + ($isReading || !ref($h->{$_}) ) && + (!@$attr || $filter{$_}) } sort keys %{$h}; for(my $i2=0; $i2 < @arr; $i2++) { my $k = $arr[$i2]; $ret .= " \"".JsonList2_Escape($k)."\": "; @@ -59,7 +56,7 @@ JsonList2_dumpHash($$$$$$) if(@arr > 1) { push @{$arrp}, " \"$name\": {\n$ret }"; } else { - push @{$arrp}, " \"$name\": { }"; + push @{$arrp}, " \"$name\": {$ret }"; } }