Geloest: jsonMod single Wert mit sprint formatieren

Begonnen von romakrau, 07 Dezember 2021, 19:42:02

Vorheriges Thema - Nächstes Thema

romakrau

Hallo zusammen,
ich versuche mich an einer jsonMod und hätte gerne das Ergebnis formatiert, sehe aber im Augenblick den Wald nicht vor lauter Bäumen.


single(jsonPath('$.observations.0.winddir')-180,'Windrichtung','-1');
single(jsonPath('$.observations.0.uv'),'UV-Belastung','-1');
single(((jsonPath('$.observations.0.imperial.temp')-32)*5/9),'TemperaturC','0');


Wie kann ich das Ergebnis formatieren z.B. mit sprintf/print auf 2 Nachkommastellen?

Gruß
Roman

herrmannj

Sprintf geht, du kannst aber direkt jsonpathf nehmen.

romakrau

#2
Funktioniert leider nur wenn der Wert als Fliesskommazahl vorliegt. Ich muss aber den Wert vorher umrechnen.
Gruss
Roman

herrmannj

Hast Recht. Ich mach dir später am Rechner ein Beispiel mit sprintf

romakrau


herrmannj

ungetestet so:

single(sprintf('%.2f', jsonPath('$.observations.0.winddir')-180),'Windrichtung','-1');

romakrau

#6
Schönen Dank, hat funktioniert. Ist allerdings etwas verwirrend da ich es erst versucht hatte mit der geschweiften Klammer als Brücke zu Perl zu generieren. Egal, Hauptsache es funktioniert.
Danke und Gruß
Roman

Edit: Offensichtlich kann man innerhalb des single(..)  Attributs Perl Funktionen direkt nutzen.
Z.B. : single(ctime(jsonPath('$..epoch')),'Gemessen','0'); ergibt = Wed Dec  8 11:14:51 2021

herrmannj

Zitat von: romakrau am 08 Dezember 2021, 09:43:42
Edit: Offensichtlich kann man innerhalb des single(..)  Attributs Perl Funktionen direkt nutzen.
Z.B. : single(ctime(jsonPath('$..epoch')),'Gemessen','0'); ergibt = Wed Dec  8 11:14:51 2021
exakt. Fürs Protokoll, auch bei multi ...