[patch] fhem.pl: None in json als null-value behandeln

Begonnen von betateilchen, 10 Oktober 2024, 10:47:35

Vorheriges Thema - Nächstes Thema

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

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 :)

betateilchen

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!
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!