toJSON Numeric Serialization

Begonnen von Loredo, 29 Mai 2019, 14:39:08

Vorheriges Thema - Nächstes Thema

Loredo

Hallo Rudi,


mir ist aufgefallen, dass toJSON() nummerische Werte als String seralisiert.
Für den Fall, dass der korrekte Datentyp exportiert werden soll, habe ich einen Patch angehängt.




Grüße
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Ich habe jetzt folgenden Patch eingebaut :--- fhem.pl    (revision 19463)
+++ fhem.pl    (working copy)
@@ -5050,6 +5050,9 @@
   if(not defined $val) {
     return "null";

+  } elsif (length( do { no warnings "numeric"; $val & "" } )) {
+    return $val;
+
   } elsif (not ref $val) {
     $val =~ s/([\x00-\x1f\x22\x5c\x7f])/sprintf '\u%04x', ord($1)/ge;



getestet mit perl 5.18 und 5.28:fhem> { toJSON({a=>1, b=>"b",c=>"3",d=>{a=>1,b=>"b"},e=>[1,2,"3"]}) }
{"a":1,"b":"b","c":"3","d":{"a":1,"b":"b"},"e":[1,2,"3"]}


und eingecheckt.

Diese Idee habe ich hier geklaut.

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER