JSONata: Die Abfrage- und Transformationssprache für JSON-Daten #37 - podcast episode cover

JSONata: Die Abfrage- und Transformationssprache für JSON-Daten #37

Sep 19, 202336 minEp. 37
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

JSONata ist eine leistungsstarke Abfragesprache für JSON-Dokumente, die entwickelt wurde, um das Extrahieren und Transformieren von Daten aus komplexen JSON-Strukturen zu erleichtern. Mit JSONata können Benutzer spezifische Teile eines JSON-Dokuments auswählen, Filter anwenden, Aggregationen durchführen und sogar komplexe Transformationen durchführen, ohne aufwendigen Code schreiben zu müssen. Diese Abfragesprache ist besonders nützlich in Anwendungen, die JSON-basierte Daten verwenden, wie beispielsweise Webanwendungen und APIs, um Daten effizient zu manipulieren und auszugeben. JSONata ist plattformunabhängig und kann in verschiedenen Programmiersprachen und Umgebungen eingesetzt werden, um JSON-Daten zu durchsuchen und zu bearbeiten.

---

Starte kostenlos mit Heisenware unter

⁠⁠⁠https://heisenware.com/einfach-komplex⁠⁠⁠

---

Links zur Folge:

⁠JSONata Website⁠

⁠JSONata auf Github⁠

⁠JSONata Extension für Visual Studio Code⁠

---

Einfach Komplex ist ein Podcast von Heisenware. Alle Infos und Kontakte findest du im Linktree:

⁠⁠⁠⁠⁠⁠⁠⁠⁠https://linktr.ee/heisenware⁠⁠⁠⁠⁠⁠⁠

---

Dr. Burkhard Heisen und Gerrit Meyer sprechen heute über:

(00:00) Einführung und Wiederholung JSON

(08:44) Einsatzzweck von JSONata

(14:25) Einsatz von JSONata

(16:15) JSONata Query Expression

(25:00) Funktionen und Expressions

(28:00) JSON Umformung

(31:00) Wildcards

Transcript

Einführung und Wiederholung JSON

Leute, hier ist Volker 37 von eurem Lieblings Podcast einfach komplex und Burkhard ist auch wieder dabei. Ja Moin Gerd, hat gerade gesagt, wir begrüßen so komisch ja das jetzt ich ganz normal. Ich bin andere Podcast sind viel anstrengender Begrüßung aber ist egal. Gut ich hab dich unterbrochen. Weil wir morgen sagen und dann eigentlich sitzen wir schon 5 Stunden zusammen. B Ach so, deswegen aber das ist nicht unsere Zuhörer nicht

stören ja das. Tun wir, wenn wir uns erstmal ja. Alles klar, Martin. Gerrit schön dich zu sehen. Ja find ich auch gut. Nein, wir haben nicht getrunken. Also genau, wir haben getrunken. Also J Sonata ist das Thema J Sonata, da fällt euch wahrscheinlich, dass Jason drin steckt und Jason ist ein Thema,

das haben wir schon gemacht. Jason ist n ja Dateiformat quasi oder n Format um Daten irgendwie strukturiert auszutauschen und J Sonata ist eine Deklarative Open Source Abfrage und transformations Sprache für Jason Data. Ja das hab ich jetzt gelesen von jona.org und Burkhard was hat es denn eigentlich mit Jason auf sich und beziehungsweise e ja auch. Und was hat das mit Jason zu tun? Ich will erst mal auf den Namen kurz, wie schön ist eigentlich dieser Name der Sonata.

Also wenn man auf die Webseite geht, dann sieht man auch, dass die das mit Sonata und sind Kanuten und n bisschen Bilder ist ganz schön, ja. Egal also, man kann ihnen. Da kann man singen. Ja, genau, was hat das auf sich. Wir hatten ja schon mal ganz alleine nur über Jason, wo wir quasi herausgestellt haben, wie wichtig heute Jason als Austausch, Format als Datenstruktur Format quasi ist.

Ich will das überhaupt nicht wiederholen, aber nur ganz kurz für diese Folge. Zum Anti Seren Jason ist halt das Format. Wenn du zum Beispiel AB heute hast. Die modernen ist, dann ist es quasi Jason was ausgetauscht wird.

Ne also wenn A fragt zum Beispiel gib mir jetzt irgendwie die die Adress Informationen von von dem von der Person mit der ID hast du nicht gesehen und so weiter dann kommt typischerweise Jason zurück ja und Jason selber ist ja irgendwie ne ja ein komplexes Wesen, denn das kann innen drin verschiedene Strukturen haben und deswegen ist überhaupt Senator wichtig, denn wir haben 2 strukturgebende Elemente, ich will das wiederholen, Folge. Also vielleicht für die Folge

ganz cool für alle Zuhörenden, die jetzt noch nicht die Folge gehört haben, geht glaube ich gerade. Ja, ich schnell raus. Und wer Bock und Zeit hat noch, der hört die gerade vor. Dann ist man glaube ich besser aufgegleist. Das ist folge 22. OK genau folge 22, aber in so vielen nur es gibt 2 strukturgebende Elemente im Jason, nämlich Gerrit. Objekt und Array. Richtig genau.

Und das Objekt nochmal zu wiederholen sind quasi assoziative Folgen. Also sagt man es gibt immer n Key und Value n Paar so und dann darf man ganz viele dann nicht das Objekt und das ist typischerweise in geschweiften Klammern, also geschweifte Klammer auf irgendeinen Key Doppelpunkt, irgendein Welove ja und davon dann halt n während des RA ist quasi eckige Klammer auf. Und dann eine Abfolge von Values. Und da ist die Reihenfolge relevant.

Auch übrigens ist es auch so, dass ich gerade eben Jason Objekt wird auch die Reihenfolge beibehalten, wenn ich das mal irgendwie code mäßig oder überhaupt das Jason quasi definiere, dann garantiert mir eigentlich die die Java Script Sprache die Reihenfolge dieser Key values, das ist ganz oft gestellte Frage im Stack over Flow, aber heute im modernen Javascript ist so. Gut, dass du so Sachen nochmal mit Reinbringst, weil wir haben gelernt, dass hören uns auch die

einen oder anderen Informatiker. Richtig zu sagen wir einmal weniger Becker Flow gucken, ja. Ja, oder? Allgemein ist es auch OK, dann mal über so ein sehr technisches Thema neu zu reden. Ja wie Senator. Ja genau, und jetzt haben wir gerade nochmal kurz gesagt,

warum. Also erstens, warum ist Jason, warum kannst du eine Abfrage Sprache geben, weil wenn du jetzt nämlich diese Elemente kombinierst, also wenn du zum Beispiel außen Objekt hast, es kann auch außen ebay sein ne das haben wir auch in der Folge besprochen, aber du hast Objekt, dann kannst du dann wieder beliebige Objekte haben oder Airways und ich mach gleich mal das Beispiel was wir durch die ganze Folge mitnehmen werden aber jetzt einmal kurz

aufpassen, ich hatte schon so eine Adress Eintrag quasi

genannt. Das ist jetzt etwas ganz klassisches, wie aus jeder x beliebigen Rest API rauskommen könnte das natürlich nicht standardisiert, jeder a macht das so wie es Bock hat, typischerweise kommen die Daten dann irgendwie mal Finale aus einer Datenbank, das auch noch, aber da hätten wir zum Antrag Eintrag wo quasi einen Jason Objekt zurückgegeben wird was wie folgt aussieht geschweifte Klammer auf also außen Objekt ja und dann habe ich Kies wie First Name Value Fred Sir Name Value Smith.

Value twenty und habe ich kurz auch. Jetzt hatte ich Fred Smith, das wären dringend Werte während des H twenty wäre dann quasi ne ne number wert hat. Setzt man die kleine Anführungszeichen ne. Da würde es ja genau jetzt schreibst und deine

Anführungszeichen drin. Genau und beim beim beim Twenty dann quasi nicht, da steht einfach nur die 20 Jason weiß dann OK, das ist eine Nummer ja so und dann hätten wir zum Beispiel einfach die Adresse von diesem Herrn Fred Smith und Adress, da steht dann Doppelpunkt wieder geschweifte Klammer auf und jetzt kommen wir zu den strukturgebende Maßnahmen, was heißt das? Wenn du hinter dem Key geschweifte Klammer aufgeht. Dann ist wahrscheinlich der Value auch ein Objekt. Genau richtig.

Und dann geht es nämlich weiter und dann haben wir quasi als neue Keys in diesem net Object Street. Hörst Park City Manchester Post Code irgendwas ja so dann geschweifte Klammer zu, dann haben wir jetzt quasi in unserem Ding First Name and Address auf dem ersten Level, wobei wir verschiedene Typen dann sehen, also zweimal trinken, einmal den Number und bei der Adress halt wieder ein Objekt wie du richtig

gesagt hast. Gerrit, Jetzt haben wir noch 1 und dann höre ich auf wenn man sich nicht mehr vorstellen können ja auch schreiben oder geht so Jonathan auf die Webseite in die Dokumentation das hab ich nämlich genau das Beispiel kann man auch nachlesen, jetzt gibt es noch den Eintrag Phone den Key. Schon im also auf der ersten Ebene dieses Objektes. Und der hat jetzt eckige Klammer auf als Wert, was ist denn dann? Das Array.

Richtig, genau. Und jetzt habe ich jetzt geht als nächstes hinter der Klammer geschweifte Klammer auf. Also einen Array was im J und wieder in sich. Richtig, genau. Ich hab jetzt ne von Objekten als Items genau und das auch typisch so.

Ja also Phone eckige Klammer auf geschweifte Klammer auf da drinne type und number type zum Beispiel Home number, die Telefonnummer, dann geschweifte Klammer zu Komma, nächster Eintrag in diesem Hay. Die Objekte in dem R und der nächste n Type Office, das ist diese Typische, das hast du, kennst du auch vom vom vom Adressbuch in deinem Google oder was? Ja du hast ja du kannst ja den Leuten mehrere Nummern verpassen, Arbeit, mobil,

privat. Man hätte auf die erste Ebene heben können mit Office Number und Home Number. In dem Beispiel sind die nochmal unter Phone geordnet als einzelnes. Genau und und warum das so ist und ob das Sinn macht oder nicht, das ist halt, der hat mir auch ne Folge drüber. Ne wie strukturiere ich meine Daten hatten wir auch schon mal Kennzahlen hast du deine Daten strukturiert, bist du bist ist das A und o für alle Software und so weiter ja. Also.

Eigentlich gar nicht. Ich dachte, jetzt kommt ein, hast du deine Daten strukturiert? Ja, bist du irgendwie? Ja, kann ich jetzt auch nicht.

Ja, ich hatte gestern bisschen Abend keine heute ja OK so gut, das wollte ich nur sagen, also das könnte halt so ein klassisches und dann halt alle Klammern wieder zu und so weiter ne das hab ich jetzt weggelassen und so ein so ein einzelnes json Objekt könnte quasi klassischerweise eine Antwort sein auf einen 1 Rest API frage gib mir mal Personen mit der d 27 oder irgendwas ja und da haben wir unseren Festen gefunden. So und jetzt, warum Jonathan?

Ja, also jetzt könnte ich ja. Bevor jetzt haben wir erstmal verstanden. Es Jason, was also für mich, aber willst du noch n bisschen? Du hast doch ein bisschen vorbereitet woher das kommt so J Senator ne und und und so Sachen

was einschieben was. Machen also jetzt ist ja die Frage wo wo, also ich habe ganz viele Daten, API ja auch und an an an welcher Stelle fange ich an Daten zu manipulieren und zu filtern und zu verändern, ne und da gibt es in dieser Kette viele Möglichkeiten und wenn ich jetzt ich habe am Anfang gesagt, kommt wahrscheinlich irgendwie aus einer Datenbank aus einer relationalen Datenbank Daten wieder folgen und natürlich kann ich bei einer relationalen Datenbank schon ne Filtering

machen. Das ist ganz klassisch über zum Beispiel über Close. Ja, und Manipulationen können wir auch machen. Datenbank kann auch so schon so ein bisschen hochfunktionellen wie summieren, Averages

Einsatzzweck von JSONata

berechnen. Oder auch in Accounting und Ordering und Filtering und so weiter das gibt es alles in der SQL Sprache, das ist die Structured Curie Language, wir ne und die macht eigentlich im Prinzip das gleiche, also hat hat das gleiche Ansinnen wie J Sonata, nämlich alle diese Operationen auszuführen, allerdings wo direkt auf der. Datenbank OK, also angenommen, ich möchte jetzt nur den First Name Fred in deinem Beispiel auslesen.

Könnte ich einmal über den SQL. Curry genau da wird s Statement machen, wo der Clown quasi die entsprechenden Anweisungen gibt, dass nur die Leute rauskommen, die mit erstem Namen Fred heißen. K. Ein komplizierter. Nö, ist auch. Ja nee, ist man muss halt n bisschen können wir n bisschen gelernt hat auch schwierig ist. Auch dann ist auch Klassiker. OK, was ist denn der Grund, warum ich natürlich sehr, dass

weniger Last auf Datenbank oder? Na ja, also wenn du, wenn du mit einer Red PI sprichst, dann machst du halt k statements mehr, dann bist du halt, dann bist du halt geflickt so ja du kriegst. Du kannst halt genau die B abfragen und dann kommt ein Objekt in Deinen in Triest angepappt und du hast gar nicht die Möglichkeit einer Datenbank rumzuspielen, das haben die schon für dich gemacht so ja also du bist das Kind ist im Brunnen an der Stelle.

Du kriegst den ganzen Datensatz. Einfach zum Beispiel jetzt

verpasst. Und jetzt dreht das n bisschen und das ist nicht nur WI so. Ja, also die ganze Welt bewegt sich in Richtung Jason, also alle Arten von Daten die von irgendwo kommen sind irgendwie irgendwann mal Jason und du kannst sogar ganze Files machen, wir auch ne kannst du CSV file einlesen also Komma separated Values oder Excel in Excel Sheet also Excel Tabelle sagen wir mal nicht so und das kommt, das kannst du auch alles wunderbar und herrlich durch diese

Struktur geben Elemente in einem Jason darstellen und das wird auch gemacht und immer mehr und das heißt du hast beliebig komplexe Jasons mit denen du eingehen willst. Ja und jetzt kommt es. Ja, du bist ja irgendwie. Du willst ja meistens noch einen Mehrwert schaffen. Du bist ja nicht fertig in dem Moment wo du ne ne rest API

abfragst. Also könntest du kannst dir das Ergebnis angucken und sagst, oh cool, das sieht halt aus so ja aber sag mal, wenn du jetzt irgendwie Business Logik haben willst, wenn du jetzt diese Datensätze die rauskommen aus einer I automatisiert weiterverarbeitet möchtest oder besonders schön anzeigen möchtest in einer Grafik oder irgendsowas ja und wo du quasi Teile raus schneiden willst oder umformatieren oder umsortieren, all diese Manipulationen machen

möchtest, dann musst du das jetzt quasi auf dem Jason machen, was anderes hast du nicht in der Hand. Und jetzt kommt Sonata und arbeitet eigentlich vom Prinzip her. Sowas macht das sowas wie ne SQL Abfrage. Früher gab es noch für die ich kenne ich kann es selber nicht, ich habe jetzt beim Vorbereiten gesehen, es gab ja auch mal XML, hatten wir auch schon ne als als Datenaustauschformat gab ja mal jetzt gibt es immer noch also ist auch sehr weit verbreitet. Wird Kontakt zu.

Genau. Aber es ist halt so ein bisschen. Na ja, es fängt an, bisschen staubig zu werden, so und x gibt es übrigens auch das x Pass, das ist quasi das also SQLX Pass und Sonata. Sind so die Tools, die so ungefähr das Gleiche machen,

gegeben. Verschiedenen Quellen sag ich mal der Abfrage orten so OK so um das mal so zu sortieren und das J Senata ist eigentlich, ich glaube das ist gar nicht so bekannt, s hat es jetzt erstmal Open Source Software ist in Java Script geschrieben und verhandelt dann das macht Sinn weil es auch mit Jason Objekten arbeitet jetzt hat ich hab gerade geguckt es hat über zweihunderttausend Downloads pro Woche als NPM Paket es hat 1,7 Kilo also

eintausendsiebenhundert Sterne. Am github Repository ist voll open Source und ich hab mal in den Quellcode geguckt, wurde geschrieben hauptsächlich von Andrew Coleman. Und seinem Co Autor. Der hat auch viel dazu beigetragen, Matt Bailey und dann kommt natürlich ganz viele Koautoren noch, die kann ich jetzt alle nennen, die hier und da natürlich mal ein Bug und ein Feature hinzu getragen haben, aber ich würde sagen, Andrew Coleman mit Bailey, die kann man

schon mal so als. Haupt Aktoren mal kurz nennen, ab 2005 oder sowas. Wenn ich es richtig gesehen hab was los. Nee warte mal 2525 macht keinen Sinn was ich hier geschrieben habe. Dann 16 oder 17 oder. Sowas kann sein. Ich hab ich Quatsch aufgeschrieben.

Ich war Andrew Coleman auf dem Linken und dann irgendwie seit 2016 Trainer und könnte Britta. Und es scheint, es scheint in seinem Haupt Job oder zumindest zusätzlich auch bei m Softwareentwickler zu sein, bei dem man weiß allerdings nicht. Weil ich nicht, habe ich nicht. Aber cool.

Also vielen Dank vielleicht mal selber Podcast vielen Dank an der Stelle an die Leute, die solche Projekte machen, die auch recht cool sind und super schnell und super gut funktionieren und einfach open Source sind.

Ja, also kann jeder der jetzt der sich denkt ich hab immer schon mit Jason umgehört, wollte umformen vielleicht selber ein bisschen entwickelt zum Spaß oder sogar professionell guck mal rein JN Cooles. Prima, dann haben wir n bisschen gesteckt, warum eigentlich Janata so so wichtig ist. Ja weil du Scheiße Jason eben das moderne Datei austauschformat ist oder Datenaustauschformat. Das ist das, was anderes rauskommt.

Und ich kann es mir nicht aussuchen, wie es rauskommt, sondern das wird von demjenigen, der die Rest API oder dem Programm zur Verfügung stellt, einfach irgendwie rausgegeben oder auch andere Schnittstellen vermute ich mal genau so. Und jetzt was passiert bei Jason, Nata oder Janata und und wie kann ich das benutzen also und wo benutze ich das auch habe ich mich gefragt schreib ich direkt den Code rein oder wie

läuft das? Also du kannst es also Jonas so aufgebaut, dass das erste Mal, dass ich meistens wo kannst, die Frage, wo kann ich es benutzen, hat immer nur 2 Möglichkeiten eigentlich in der modernen Welt. Nämlich entweder im Browser direkt, also dann läuft es quasi in der Engine des Browsers beim

Einsatz von JSONata

Klienten lokal oder das läuft auf dem Server läuft auf dem Server. Dann habe ich gerade schon gesagt, NP ist ja quasi der Paket Manager für diese javascript basierten Sachen, wenn es wenn es also in dem Moment wo du auf dem Server läuft benutzt hat TS beziehungsweise Script und im Browser ist es halt einfach Java Script entsprechend den kompiliert das läuft da kannst du kannst dir aussuchen was benutzt aber. Also jetzt wäre jeweils im Code zu finden.

Tatsächlich. Ja, Code Code im Code aber und weil das halt ein bisschen, weil s halt. Developer Werkzeug ist ja im im Code quasi genau. Das auch n bisschen. Genau das ist ein bisschen schwer zu sehen, wie es funktioniert und so weiter gibt es ziemlich cool gemacht von den Jungs von Jonathan sogenannten Play Ground. Ich glaube nicht. GJ Senator exerciser ich hab sie grad noch offen, was ganz cool ist. Da kann man nicht, das ist einfach ne fette Webseite und links ist quasi ein ziemlich

komplexes. Haben Sie da schon mal gemacht? Kann man austauschen gegen seine eigenen und so weiter ist schon ein ziemlich komplexes Jason File abgebildet und rechts oben kann man dann quasi diese, ja diese quasi die. Also den die Expression und das mal Fachterminus zu sagen hin tippen, die dazu führt, dass dieses Jason entsprechend der Jona Regeln quasi gefiltert, geändert oder irgendwas wird.

Dann habe ich noch ein Drittel in diesen Dingen war das Ergebnis zeigt ne also einmal original dann die Abfrage oder oder um formatierungs Expression und dann das Ergebnis ja so das ziemlich cool, weil dann kannst du einfach deinen zum Üben erstmal reinklatschen und so und dann auch deine eigenen Jasons da reinmachen vielleicht hast du von der irgend so ein dings und dann guckst du mal ob das klappt und dann kodierst du entweder hart in deinen Code rein. Das ist immer die Umformung,

macht oder so wie wir. Wir lassen quasi unsere User, denen das Jonathan so als Logo tippen. So und dann kannst du das umformen, ne. Und du sagst jetzt schon die expressions kannst du rein tun. Ich glaub das haben wir gar nicht, sagt er doch gar nicht

JSONata Query Expression

gesagt, das ist so ein bisschen der Kern eigentlich von von J Sonata ist oder die verschiedenen Expressions, also Standard Funktionalität. Du kannst damit Summen bilden und solche Sachen oder Durchschnittswerte et cetera. Wie sieht das aus, also kannst du auch kombinieren untereinander denke ich mal klären n bisschen. Genau das hab ich also. Das ist natürlich immer schwierig. Podcast aber wir versuchen das n bisschen. Du hast das Beispiel Anfang.

Genau dieses Beispiel. Ich nenne es auch gleich nochmal daran, haben wir uns ein bisschen langsamer Vorstellungen, wie Expression aussieht.

Ja, also wir fangen ganz einfach an und das ist also man kann ja erstmal überlegen, was will ich grundsätzlich machen, ich fang mal an mit Curing, also mit quasi mit Herausfiltern von bestimmten Eigenschaften eines komplexeren Jason Objekte, also wir bleiben unserem Beispiel, wir haben quasi ein Objekt mit den Kirsten Susanne Address Phone und den verschiedenen Typen. Und wenn ich jetzt einfach zum Beispiel nur den First Name haben wollen würde, ja, also

diese kommt Abfrage an und ich will einfach nur den den Wert des, also den Vornamens wert haben. Also Thread in dem Fall den Values Keys values first Name dann tippe ich einfach und dann ist Jason Expression einfach nur First Name. Schluss aus. A einfach. Und genau einfach findet dann so. Ja, und das ist das nennt man der sogenannte Location Pass und das Konzept ist genau analog für

für XML. Also ich gebe quasi, ich gehe quasi durch die durch die Struktur des Jasons durch und verbindet quasi tiefer liegende Adress Elemente mit dem Punkt, das ist auch so ein Klassiker, eigentlich passiert auch in der Sprache intern, also wenn ich dann zum Beispiel nicht den First Name, sondern die Street und wir erinnern uns, Street war unter Adress, dann war es ein unter Objekt mit Street City und Post. Und sagen wir mal jetzt, die rausholen wollen, dann würde ich jetzt adressieren.

Adress Punkt Street. Perfekt genau. Und dann kommt diese Straße raus, so so, und das ist halt, das ist halt die Security Sprache, ich sag eine technische Sache, manchmal hat man bei Jason, das ist nämlich erlaubt, die Kies müssen zwar immer stringent sein. Aber es geht auch, dass die Keys zum Beispiel in Space haben.

Also ich könnte zum Beispiel was Company Name wilder Weise irgendwie Company Space Name nennen als Key, was ist Valides Jason, da würde er im Juni würde sofort rechts und links abbiegen, wer sowas macht, das macht man nicht aber manchmal so ne, das schützt ja nicht weil ich eine Frage, dass jemand Verrücktes trotzdem gemacht hat, so dann nimmst du Back Ticks die

du kennst. Ja die Packs auch schon ne also die viele Leute kennen nicht programmieren, das sind die Fragen oben links an und gehen nach unten rechts und seine Häkchen also es sind nicht die normalen. Einfachen Anführungszeichen auch nicht doppelt, sondern es gibt einen speziellen Charakter, der heißt Actic, die. Sind die sind auch sehr auf der deutschen Tastatur, zumindest zwischen dem SZ und Fragezeichen und dem Back Space. Zu finden es ist, wieso ein Backslash irgendwie oben ist.

So, ja irgendwie ja braucht man glaube ich nicht so häufig. S programmieren bisschen dings, so ist aber auch wichtig, Jonathan kenne. Ich, ich hab da bisher nur eine Anwendung bei den französischen Accent Aigu und Accent grave und so. Weiter ist davon ja auch ne.

Also ich hab nicht graphique, aber einer von beiden wird es sein so ne genau, aber wenn du quasi dein dein dein, also sagen wir mal First Name wäre jetzt nicht wie es ordentlich ist Case geschrieben sondern first Space Name, ja dann müsstest du und den rauszuholen quasi Back machen und den Sprint mit dem Space quasi dazwischenschreibe war also Actic First Space Name Actic ja und dann kommt dann quasi wieder raus.

Ja das wollte ich nur sagen Besonderheit aber also manchmal schon deswegen würde ich also da muss man mal gucken, also ist das quasi. Frage, Herr Senator, wenn du das. Jetzt nicht ganz richtig machen würdest. Würde dir so ne so ne Integrated Development Environment der Stelle auch Bescheid sagen, wenn der letzte Woche das Gespräch über die Idee ist und du hast die macht alles bunt und unterstrichen wenn irgendwas falsch ist kennen die auch Jonathan.

Nee, das glaube ich nicht. Aber es gibt also nicht per Default, aber es gibt garantiert, ich hab nicht geguckt, ne gute Frage, es gibt garantiert und jona Vormittag oder also Extension Module für die IDE für Janata, manchmal machen das die Entwickler selber gleich, vielleicht der Andrew Coleman gleich irgendwie für. Durch das Studio Code entsprechende Extension gemacht, die dann seine Sprache quasi es. Gibt, dann haben wir auch noch mal an die Folge.

Richtig guter Punkt, geht das denn das sollte ich mir auch runterladen, das macht Sinn, ne? Da sieht man gleich alles richtig getippt hat, obwohl die Tipps nicht gesagt, evaluieren sind. Runtime aber macht trotzdem Spaß zu haben ja OK und dann und dann kurz was also das war jetzt, das war jetzt einfach weil wir haben jetzt quasi uns lang gehangelt durch strukturgebende Elemente die jetzt alle Objekte waren. Jetzt n Bier, wenn er dazwischen haben.

Deswegen haben wir dieses quasi das Phone Beispiel drin gehabt ne also wir erinnern an das Beispiel von Anfang hatten wir vorne als Top Level Key und dann war ja ne von.

Von Number ja verschieden genau, verschiedene Nummern so ja und wenn ich jetzt, wenn ich wenn ich das jetzt habe und will, da aber quasi mir einen rausholen Element, ja dann, dann benutze ich dieses eckige Klammer Feld. Also ich hab dann quasi hin, also jetzt zum Beispiel den ersten Eintrag von einem adressieren will, dann muss ich schreiben Phone eckige Klammer auf und jetzt den Index des Elements, so ist im Fachjargon und die Informatiker fangen nicht wie normale Leute an bei 1

zu zählen, die Fangen immer bei 0 zu zählen, also wissen sie das ist also wenn ich das erste Element. Aus haben will, dann darf ich auf keinen Fall Phone Klammer auf Einschreiben, das ist nämlich das zweite Element, das fängt bei 0 an C also vorne geht Klammer auf 0 Klammer zu was kommt dann raus? Ach so, die, die die Nummer, die unter dem. Home Nee, das ist nämlich ein Objekt. Jetzt haben wir das Item adressiert, kommt jetzt zurück, Type und Number hast du jetzt,

weil du hast nicht vor ich habe. Natürlich vor type Number. Oder ich hatte gesagt Phone der originale Eintrag sieht so aus, Phone Jerry und dann NA von Objekten und jedes Objekt hat die Keys Type und Number für mobile Arbeit also ne privat und so weiter ist der Typ und die Nummer hat die Nummer und wenn ich jetzt erstmal sage Phone an der Stelle 0 quasi ne Klammer auf 0 Klammer zu dann kriege ich als wert immer erstmal das

nächste. Komplexe so funktioniert das mit der Sprache. Ja, und das da drin ist halt wieder ein Objekt und deswegen gibt mir dann Jonathan, der das Objekt zurück, also der Ausgabe wäre tatsächlich geschweifte Klammer auf Type Home Number, was auch immer die Erste die Nummer ist, die da in diesem ersten Feld steht, so würde ich jetzt nur die Number haben wollen vom ersten Element. Was würdest du sagen, wäre wäre eine gute UX.

Ihr müsst ich wieder nach den geschweiften Klammern und der 0 drinne wahrscheinlich n Punkt setzen und dann. Nach den eckigen Klammern. Und der 0 drinnen Schwestern. Klammer auf 0. Klammer zu Punkt. Und dann? Welcher Tag war das Home also? Die Nummer also würde ich den Key von dem Objekt wiedergeben wie vorher war OK, also wir fangen an.

Phone ist schon der vom ersten Ding da e Klammer auf 0 weiteres Element, dann haben wir im Kopf n kommt Objekt zurück, das hat wieder n Key und Value also in dem Fall 2 und wenn der Key number heißt dann schreib Punkt Number ja also Phone Klammer auf 0 Klammer zu Punkt number so dann habe ich richtig Nummer und. Respekt wäre jetzt noch folgen könnten. Wir ja gut, stimmt Respekt. Man kann sich das angucken oder so.

Was ich halt einfach sagen will, dass es ist ganz typisch für Programmiersprachen, jetzt gar nicht. Statt speziell ist. Es werden immer adressiert.

Ja du hast, du hast ja quasi ein Index von dem R und der wird immer eckigen Klammer gesetzt und dann gibt es noch ein paar Features, geht nicht drauf ein, aber man kann Ranges definieren zum Beispiel ganz geil, das kannst du nicht in Java Script so einfach, wobei Jena kannst du einfach sagen, zeig mir alle an von 1 bis 4 und schreibst du 1 Punkt Punkt 4 in nochmal eckige Klammern speziell wenn kriegst du Ranges raus so ja und eine Sache ich auch so und dann auch cool wenn du negative Werte

eingibst. Was könnte das bedeuten? Also Phone eckige Klammer auf -1 Klammer zu. Was nutzen die also ganz viele Programmiersprachen das negatives Indexing. Ich kann nur Hamburg, weiß ich ja doch mal, ist hier gerad hat gesagt er will mehr mit mit Raten. Werden. OK. Vielleicht negativen Wert einfach oder wahrscheinlich nicht irgendwie so von hinten, von hinten, ja. Bezahlt von hinten ist voll cool, das brauchst du ganz oft. Ja, also wenn du hast das

Funktionen und Expressions

Element, wenn du das letzte Element vom r. Du weißt ja manchmal nicht, Einträge sind, wenn du einfach das letzte Element haben willst, dann machst du halt -1 ist das zweite Element ist -2 und so weiter das hab ich ganz nice. Das macht auch das Skript so. Gut, das sind jetzt die, die Basic expressions quasi. Gewesen.

Das ist auch das Wichtigste für die Folge, dass man einmal verstanden hat, weil ich glaube, das ist auch der wichtigste Anwendungsfall, dass du quasi dein gegebenes, n bisschen komplexes Jason Objekt runter filterst. Du Unterbrichst auf die Sache und so. Aber vielleicht kannst du mal n bisschen das nochmal ein bisschen weiter aufspannen, was dann theoretisch noch alles ging. Also nur beispielhaft. Also da hört ja nicht auf. Oder ne hört sich auch ein

bisschen noch besprechen. Ich weiß nicht, wie wir unsere Zeit ist, aber so genau da hört nicht auf. Ich sag mal kurz. Mal rauchen also, das ist das das rausholen von den Sachen, dann können wir quasi Konditionen mit einbauen beim rausholen so bisschen wie Claus.

Also ich könnte zum Beispiel sagen, gib mir alle, hol mir alle Telefonnummern raus, die mit plus 49 beginnen zum Beispiel, ja das kannst du auch mit einbauen und dann baust du quasi in diese in diese eckige Klammern, wo normalerweise direkt ein Element adressiert, baust du dann quasi conditional Logic rein, ne sowas wie kannst du halt quasi wieder auf die auf die Variable mit dem gleichen, deswegen hab ich angemacht mit dem gleichen Pasing. Beziehen wir schon gerade bei

dem Turing gemacht haben, kannst du so schreiben, zum Beispiel Punkt Number gleich ja oder größer oder kleiner, da gibt es diese ganzen Operationen, braucht dringend eine bestimmte Nummer und dann dann sucht quasi für dich daraus.

Also das ist quasi das wichtig, das nennt sich Prädikats bei bei Jonathan und das ist für mich eine Art Abfrage suche mit Konditionen ne und dann das Ding noch Funktionen einfache Funktionen, aber die wichtigsten also sowas wie also das funktioniert, die Funktion sind meistens geil auf auf ebay Strukturen. Also sowas wie Sam.

Ne, wenn du kannst jetzt bei den wir Telefonnummer macht nicht viel Sinn aber wenn du jetzt ausprobieren wolltest zum Beispiel werden die Jäger, dann kannst du sagen über das ganze Array summiere mir alle Nummern ja oder machen Average oder Match match ist regular expression, also irgendwas was irgendwie so und so geformt ist irgendwie e Mail ja.

Mit einer drinnen irgendwas oder contains non funktion contains heißt hat das also das er beinhaltet ne und splitt kannst du machen als Funktion. Also du kannst ja quasi Funktionen mit hinein fügen um deine Daten zu manipulieren und dann hast du den großen Bereich, den hab ich erst ganz spät

verstanden. Leider hätte ich schon viel mehr machen können, selbst du kannst quasi auch deine Objekte komplett neu umformen umformen, das ist das was Jauch bietet also ich sag jetzt da kurzes Beispiel dazu wenn du jetzt zum Beispiel nen den ersten Namen herauslesen. Wolltest von dem Beispiel, Wir hatten Fürsten Name und willst

es aber nicht nur den. Also wenn wir schreiben First Name, dann kommt ja raus Fred. Wenn ich jetzt zum Beispiel wieder Objekt haben möchte, muss halt nicht First Name heißt,

JSON Umformung

sondern irgendein Name, weil meine nächste aber einfach nur Name braucht. Ja dann kann ich jetzt schreiben. Eckige Klammer, Quatsch. Eckige Klammer, geschweifte Klammer ich machen, und jetzt schreibe ich einfach ganz normal hin, was ich brauche, also ich schreibe. Gänsefüßchen Name, Gänsefüßchen,

doppelpunkt. Also ich kreiere quasi neuen Key und schreib dann dahin First Name First Name wird einfach interpretiert, denn das ist wichtig, das habe ich nicht verstanden, du kannst quasi diese diese Queries die wir ganz am Anfang gesprochen hatten ne wir haben jetzt ein paar Durchgeübt, die kannst du an eine beliebige Stelle schreiben innerhalb dieses innerhalb dieser J Sonata Expression und damit kannst du quasi und und ansonsten ist es nämlich

Jonathan wieder Jason heißt du kannst wilde Objekte mit wilden Strukturen aufbauen und an beliebigen Stellen. Diese Querys einfügen und auch mehrere gleichzeitig und dann kannst du total komplexe neue Objekte aufbauen und neue Datenstrukturen. Das heißt, du bist nicht nur in der Lage zu inflight zu zu filtern, die Daten und rauszusuchen nach Konditionen, sondern auch komplett Umzug modellieren ne und das ist ich kann gar nicht sagen wie wichtig

sowas ist. Ja wenn man also wie wichtig sowas ist, wenn man zum Beispiel verschiedene Sachen miteinander verkuppeln will, weil du immer weil der nächste Input von der nächsten API Funktionen was auch immer wird immer irgendwie leicht anders sein als der Output da. Ich wollte dich schon fragen, wie würde man das denn jetzt? Immer heimlich machen, auf welche Art und Weise, dass man die Daten irgendwie modifiziert und transformiert, das geht schon anders. Und Jonathan macht da einen

leichter. Ne, würde man das? Ja, du kannst einfach mit den von javascript das machen. Ne, also mach ich jetzt. Also ich hab verstanden wie das so geht so und du kannst einfach auch Expression in Java Script schreiben, muss dann halt auswerten und dann javascript s

auch sehr einfach. Ja da gibt es auch die ganzen Funktionen Map und Reduce und Summen und so weiter aber du musst du halt schon, das ist typischerweise etwas länger hinzu Schreiben und du kannst es auch nicht so einfach hin kombinieren, ein neues Objekt, dann musst du dir mehr Gedanken machen also es geht alles aber. Ist halt schon ziemlich schick und ziemlich elegant und einfach mit. Hat, das wollte ich hinaus, ja. Und vor allem wahrscheinlich

schneller als hip. Also die haben sich schon Mühe gemacht, dass extreme Performance auch zu machen, das die Abfragen und so weiter wird viel gelacht, alles was da im Hintergrund irgendwie gespeichert werden kann für diese Abfrage wird gemacht. Ja, und wenn ich mir anschaue, dann ist es für mich auf jeden Fall deutlich leichter, zu zu lesen und zu verstehen. Irgendwie also javascript expressions. Ja, ich glaube, die können auch

werden. Diese Abfrage sprach Senator Sachen, so hab ich auch schon wilde Dinger gesehen, aber ich glaube so in auf der Schnittstelle zwischen Code und Low Code. Ist auf jeden Fall, dass Low Code ja und ja und wie gesagt, also auch sogar für Entwickler auch gerade wenn man irgendwie Runtime quasi umsetzen kann, aber auch ein compile Time n sehr mächtiges Tool. Genau das wäre jetzt also für mich wär das jetzt auch schon so passend irgendwie, weil ja, wir machen mal so aufmerksam darauf,

Wildcards

dass es, dass es gibt, genau, und das ist eigentlich die. Idee haben erklärt, Glaube ich. Ja, und die Ganzen, die ganzen Links gucken mal rein. Ich wollte, ich wollte nicht, oder? Ö. Aber du hast schon recht. Also ich hab jetzt alles durch, eigentlich Wildcard gleich. Sagen. Weißt du was? Nicht die wird ja immer so gerne. Ja, also ich weiß nicht ist, das ist klar. Nee, weil in meiner Welt Eltern. So ja, ich hab ja ich weiß schon was du meinst du es auch so?

Ja genau, ja, nee, dann Stern. Nee, das lasse ich keinen Stern glaube ich ne. OK, Stern hat auch irgendwas ne Bedeutung. OK also Raute oder Stern entweder denn für den Ganzen, für das ganze Topic oder halt nur ein. Teil. Aber der Stern ist auch in der Sprache der klassische Wildcard. Also jedenfalls gibt es einen Stern in Jena, und das heißt also, wenn du zum Beispiel Stern, Punkt, irgendwas, Stern, Punkt Number oder irgendwas dann dann ist es Wurst.

Wie das? Wieder wieder Objekt Key, der davor war, hieß versucht, hat alles raus was er findet, was dann irgendwie miteinander endet und krasser Weise kannst du auch Eltern nehmen, dann ist die Hierarchie auch noch Wurst. Also dann egal auf welcher Tiefe ja also aus dem ganzen Dokument, das ist doch ein geiles Feature was du nicht so schnell mal eben irgendwie so hin programmierst, ja. Also weil in dem Fall. Alle. Alle. Kies raus, die Nummer.

Halten und egal welches Level oben drüber so ne also in der Software im Software Jargon nennt man sowas dann rekursive abfragen, weil weil du weißt nicht dass muss immer

funktionieren, es muss halt mit. N Level funktionieren, wenn 2525 Fachgebieten Level ist, müssen diese Dinge funktionieren und wenn du das selber programmierst, dann musst du ein bisschen was rekursives schreiben, das wird schon wird schon gleich mal schroller und heftern OK, also wenn unsere jetzt denken boah was für ne Waffe für so n bisschen Jason also ich hab gerade neulich Workshop gemacht, ich verrate nicht mit wem, aber wir haben APIS abgefragt wo ich vorher

auch nicht was kommt auf mich zu, es war der Inhalt von Workshop und da kam Jason zurück, da hab ich die Ohren angelegt ja ich also krass also also zehnfach. Schalte Dinger, da kriegst du erstmal die das Ding auf und dann kommt nochmal auf der 10 ebene a um die Ohren gedonnert mit 3000 einträgen wo sie denkst du Alter was ist hier los? So ja wenn du da. Wenn du also das war das Ziel, das war n bisschen aufzuräumen und bestimmte Daten

rauszusuchen. Ja, wenn du das jetzt per Hand Expression schreibst, javascript kannst du machen. Aber also das war mit Jonathan irgendwie ganz cool, da gibts da schnell hin und fertig, ja. Ja, weiß nicht. Willst du noch ein Wort dazu sagen, wie das wie das quasi wie wir das Einsetzen, gesagt? Kann ich vielleicht, dass wir benutzen? Also bei uns kann man quasi da PS abfragen oder Daten grundsätzlich abfragen und bei uns kommt immer alles als Jason an.

Das ist zwar unsere unsere hab ich schon Standard Datenstruktur und dann kannst du immer an den an die an die Daten die da ankommen wenn du möchtest und Jason Entschuldigung Y nata expression dran kleben und dann würden quasi die Daten die da gerade ankommen sofort Jason irgendwie berührt verarbeitet. Geändert in the Flight und dann hast du deinen neuen Daten, deine neue Daten Struktur und die kannst du weitergeben.

So das nutzen wir den ganzen Tag, das ist echt und das brauchst du auch überall, weil das ist. Das ist also die Salz in der Suppe. Ja ist halt irgendwie Datenstrukturen passend zu machen zu schon sehr viel Funktionalität es gibt es gibt ganz viel Funktionalität in der Welt, aber die hat immer ihre eigene Vorstellung von Datenstrukturen. Also s Datenstrukturen Zusammenkneten, neu modellieren, Filtern und so weiter ist ist das was du machen musst.

Den ganzen Tag ja und deswegen Janata, weil das kann man am besten finde ich für Jason. Perfekt. Kannst du noch ne Alternative zu J Senator ist das das Tool? Ne, ich kann tatsächlich keine Alternative zu j. Ich habe auch nicht gesucht. Also ich hab irgendwie hat mir Jonathan ins Ohr geflüstert und dann hab ich mir angeguckt und war sofort überzeugt und ich brauch keine Alternative. Prima wird alles verlinkt. Nochmal ein Dank an die Schöpfer Matt Bailey und Andrew Coleman glaube.

Ich. Genau. Und danke für euer Cooles. Open Source Projekt? Ja, genau. Folge Open Source haben wir auch gemacht. Und das Beispiel. Guten kann richtig geil, ja. Prima. Dann auch Danke Burkhard Mal wieder. Ja, was gelernt. Immer gerne. Und Janata verwende ich tatsächlich sogar. Auch als Low Coder. Ja genau, und ich hätte auch wieder mehr. Also nachdem ich verstanden habe wir irgendwie komplett neue Objekte aufbauen kann. Dann euch danke fürs Zuhören und bis nächste Woche bei einfach

komplex. Sieht es aus bis dann Tschüss. Vielen Dank fürs Zuhören dieser Folge von einfach komplex. Die Folge gefallen? Dann lass uns doch ne gute Bewertung da oder Teile die Folge mit jemanden aus deinem Netzwerk für Kritik zufolge Anregungen und Fragen für neue Folgen freuen wir uns auf deine Email an podcast@hymer.com. Abonniere jetzt unseren Podcast, um keine Folge zu verpassen, bis zum nächsten Mal. Tschüss aus. Hamburg. H.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android