NEWS
Frage zu Jsonata
-
Hallo,
bin neu mit Jsonata unterwegs und frage mich ob ich folgende Funktion dort abbilden kann:
Ziel des ganzen ist es einen Definition zu schreiben, die mir die benötigten Daten aus dem Json fischt. sowas z.B. (ungetestet)
const formatedKeys: { [key: string]: customFormatedKeysDef } = { dwdService: { starttime: '$fromMillis(properties.ONSET,"[H#1]:[M01]")', startdate: '$fromMillis(properties.ONSET,"[D01].[M01]")', endtime: '$fromMillis(properties.EXPIRES,"[H#1]:[M01]")', enddate: '$fromMillis(properties.EXPIRES,"[D01].[M01]")', dayofweek: '$fromMillis(properties.ONSET,"[F]")', headline: 'properties.HEADLINE', description: 'properties.DESCRIPTION', weathertext: '', ceiling: 'properties.CEILING * 0.3048', // max höhe altitude: 'properties.ALTITUDE * 0.3048', // min höhe warnlevelname: 'properties.SEVERITY', warnlevelnumber: '', warnlevelcolor: '', // RGB im Hexformat warntypename: 'properties.EC_GROUP', location: 'properties.AREADESC', }, };
gekürztes Beispiel Json
{ "properties": { "SEVERITY": "Moderate" } }
Darauf würde ich gerne diese Funktion abbilden:
function getCapLevel(str) { const offset = 1; return [ `minor`, `moderate`, `severe`, `extreme` ].indexOf(str.toLowerCase()) + offset; }
geht das? Wenn ja, wäre ein Link nett.
-
ganz komplett hab ich es nicht verstanden.
also du hast ein ursprungs json.
daraus willst du ein anderes json bauen, was wahrscheinlich einfacher in der struktur ist, wie das ursprungs json.dann willst du das neue json auswerten
ist das richtig?
auf basis der aktuellen infos und meiner interpretation:
das ist kein problem. ob tatsächlich jsonata notwendig ist, kann ich nicht beurteilen. auswerten kannst du mit normalen javascript auch schon auf basis des original javascriptsjsonata hat eine eigene dokumentation mit beispielen
https://jsonata.org/ -
@oliverio
Die Doku hab ich teilweise gelesen, aber zu meinem Problem keine Antwort gefunden. Lese ich sie am WE mal komplett.Natürlich braucht man für die Lösung des Problems kein Jsonata. Wäre nur schön, weil ich fast alles was ich an dieser Stelle brauche damit machen kann und es wirklich einfach zu erweitern wäre.
EDIT:
Ne du hast was falsch verstanden(glaube ich), ich habe ein UrsprungsJson, auf das wende ich die einzelnen Keys vom formatedKeys Json mit Jsonata an, und dann erhalte ich ein Json mit formatierten Daten für die Weiterverarbeitung.
-
@ticaki sagte in Frage zu Jsonata:
Ne du hast was falsch verstanden(glaube ich), ich habe ein UrsprungsJson, auf das wende ich die einzelnen Keys vom formatedKeys Json mit Jsonata an, und dann erhalte ich ein Json mit formatierten Daten für die Weiterverarbeitung
genau das habe ich geschrieben
damit du dich mit dem programmieren nicht rumärgern muss, kannst du am anfang die einzelnen ausdrücke zusammen mit deiner json ausprobieren
https://try.jsonata.org/ -
@oliverio
Danke - keine Ahnung wieso ich das nicht schon im ersten Lesedurchlauf verstanden habe. War wohl zu fixiert auf Arrays.$lookup({'minor':1, 'moderate':2, 'severe':3, 'extreme':4},$lowercase(properties.SEVERITY))