From 2a19d496d14efce5c05becfe45a3dfca209e7346 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 22 Jan 2022 15:42:45 +0000 Subject: [PATCH] fhem.pl: better number/string parsing in json2nameValue (Forum #125340) git-svn-id: https://svn.fhem.de/fhem/trunk@25544 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 47547b37f..8437daa54 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -5352,7 +5352,7 @@ json2nameValue($;$$$$) my %r2; my $in2 = $val; - while($in2 =~ m/^\s*"([^"]+)"\s*:\s*(.*)$/s) { + while($in2 =~ m/^\s*"([^"]*)"\s*:\s*(.*)$/s) { # 125340 my ($name,$val) = ($1,$2); $name =~ s/[^a-z0-9._\-\/]/_/gsi; ($err,$in2) = eObj(\%r2, $name, $val, $in2, $prefix); @@ -5378,9 +5378,10 @@ json2nameValue($;$$$$) $idx++; } - } elsif($val =~ m/^([0-9.-]+)(.*)$/s) { + } elsif($val =~ m/^((-?[0-9.]+)([eE][+-]?[0-9]+)?)(.*)$/ && # 125340 + looks_like_number($1)) { setVal($ret, $prefix, $name, $1); - $in = $2; + $in = $4; } elsif($val =~ m/^(true|false)(.*)$/s) { setVal($ret, $prefix, $name, $1);