FHEM Forum

FHEM => Sonstiges => Thema gestartet von: betateilchen am 10 Oktober 2024, 10:47:35

Titel: [patch] fhem.pl: None in json als null-value behandeln
Beitrag von: betateilchen am 10 Oktober 2024, 10:47:35
Hallo Rudi,

aktuell kommt es in json2nameValue() zu Problemen, wenn ein nicht vorhandener Wert durch None (ohne Anführungszeichen) dargestellt wird. Offenbar gibt es ein paar APIs, die das so tun.

https://forum.fhem.de/index.php?msg=1322121

Durch einen kleinen patch

Index: fhem.pl
===================================================================
--- fhem.pl     (revision 29180)
+++ fhem.pl     (working copy)
@@ -5492,7 +5492,7 @@
       setVal($ret, $prefix, $name, $1);
       $in = $2;
 
-    } elsif($val =~ m/^(null)(.*)$/s) {
+    } elsif($val =~ m/^(null|none)(.*)$/is) {
       setVal($ret, $prefix, $name, undef);
       $in = $2;
 

könnte man die Prüfung auf null so erweitern, dass keine Fehlermeldung/kein Abbruch mehr in der Funktion passiert.
Titel: Aw: [patch] fhem.pl: None in json als null-value behandeln
Beitrag von: rudolfkoenig am 11 Oktober 2024, 18:28:25
Habs mit leichten Bauchschmerzen eingebaut.

Eigentlich(TM) ist None nicht Bestandteil der JSON Spezifikation, auf der anderen Seite: wieso sollten wir das Leben fuer Leute schwermachen, die gezwungen sind kaputte Software zu verwenden, wenn wir deswegen keine Nachteile haben.
Letzteres bin ich noch nicht ganz sicher :)
Titel: Aw: [patch] fhem.pl: None in json als null-value behandeln
Beitrag von: betateilchen am 12 Oktober 2024, 15:09:26
Deine Bedenken bezüglich "nicht in der Spezifikation" teile ich vollumfänglich.
Aber vermutlich dürfte hier einfach der Nutzen für die Anwender überwiegen.
Sollte ein JSON tatsächlich den Wert "None" - mit Anführungszeichen - liefern, wird der Wert ja korrekt behandelt und auch als solcher in ein reading geschrieben.

Danke fürs Einbauen!