Marcel Moré zeigte zunächst ein Tool zum Validieren und Formatieren von JSON-Objekten und berichtete dann, wie er zufällig auf eine JavaScript-Bibliothek gestoßen war, die es erlaubt XPath-ähnliche Abfragen auf JSON-Objekte anzuwenden. Damit wird es möglich, Wildcards und flexible Referenzen zu nutzen, um Teilabschnitte aus JSON-Objekten gezielt zu filtern. Möglichkeiten also, die FileMaker selbst mit Bordmitteln so nicht anbietet.

Ausgangspunkt der Expedition waren die “DevUtils”, wo es u.a. ein JSON-Format/Validate Tool gibt. Unterhalb des Ausgabefelds gibt es die Möglichkeit, einen Pfad einzugeben. Die Hilfe-Funktion erklärt die JSONPath Syntax und listet dazu einige Beispiele auf. Schnell wurde deutlich, welches Potential sich damit bietet und zugleich der Wunsch geweckt, diese Möglichkeiten direkt in FileMaker zu nutzen.

Eine kurze Recherche brachte einen schon älteren Blog-Beitrag zu JSONPath zum Vorschein mit enthaltenen Links zu einem Google Code-Repository mit Source-Codes in C#, PHP und JavaScript. Da der JavaScript-Code relativ kurz und übersichtlich ist, war die Idee naheliegend, diesen mit Hilfe der MBS JavaScript Funktionen direkt in FileMaker einzubinden. Beim Testen und Debuggen half das Tool “RunJS” welches eine interaktive JavaScript Umgebung auf dem Mac zur Verfügung stellt. Nachdem die Feinheiten für die Parameter-Übergabe geklärt waren, stand der Implementierung nichts mehr im Weg!

Die fertige Demo-Datei kann auf dem zugehörigen Blog-Beitrag herunter geladen und für eigene Zwecke angepasst werden:
https://blog.marcel-more.de/2023/08/21/fm-json-path/

Weitere sehr mächtige Werkzeuge für den Umgang mit JSON Objekten in FileMaker sind die Tools “JSON Query” und “JSONata”. Dazu gibt es ausführliche Dokumentationen und Beispiele im Blog von FileMakerHacks. Auch die Aufzeichnung der Präsentation beim FMDiSC Meeting zum selben Thema ist sehenswert.

JSON Query
https://filemakerhacks.com/2021/10/29/jsonquery-part-1/
https://filemakerhacks.com/2021/11/30/jsonquery-part-2/
https://youtu.be/dztdZrHdrUQ

JSONata
https://filemakerhacks.com/2021/06/29/filemaker-19-jsonata/
https://jsonata.org/
https://www.thecontextpodcast.com/68