Summary
I very much like 4Ds debugger-window to check the contents of a JSON-file. But sometimes I’d like to have a JSON-parser for the runtime-environment. There is none, so I build one myself.
Mir gefällt der JSON-Parser im 4D Debugger sehr gut. Habe ich ein JSON, das ich nicht kenne, öffne ich es mit 4D und schaue mir die Struktur im Debugger an. Super!
Hier ein Screenshot eines JSON-Dokumentes wie es im Debugger erscheint. Die Struktur des JSON ist übersichtlich, leicht zu verstehen und ich kann mich durchhangeln.
Zumindest zur Kontrolle während der Runtime möchte ich Objekte/JSON ebenfalls kontrollieren können. Ein Kollege meinte, ich könnte es mir in einer Stunde bauen. Für den eigentlichen Parser reicht das. Daraus ein Widget zu machen, dieses in eine Test-Umgebung einzubinden und mit unterschiedlichen *.json zu testen, braucht mehr Zeit. Es ist viel Schrott mit der Extension .json unterwegs.
Verwendung
Sie legen in Ihrem Formular ein Unterformular an und weisen diesem das Widget DBZ_JSONWidget zu. Das Widget ist eine Textvariable. In der Textvariablen übergeben Sie den Pfad auf ein JSON-Dokument. Die Tester.app führt das vor.
Anwendung
Hier wurde ein GeoJSON, die haben sehr variable Strukturen, analysiert.
Oder hier römisch und kyrillisch gemischt
Download
Die compilierte Komponente zum Download. Verwenden Sie sie in Ihrer Datenbank, so wie sie ist. Fehlerhafte JSON werden als Ausgabe im Widget gemeldet. Hier zu sehen. Die Testdatenbank gibt es hier zum Download. Die Komponente ist für V15.
Neue Version vom 14.11.16: zeigt leer-Daten an.
Sourcecode
Möchten Sie die Komponente ausbauen, ergänzen, downgraden auf V14, brauchen Sie den Sourcecode. Davon maile ich Ihnen eine Kopie, sobald Sie sich mit 50,-€ an meinem Aufwand beteiligt haben. Danke!
This is a Screenshot of a JSON-document as 4D-debugger will show you. The JSON-structure is displayed clearly, easy to understand and I can walk the structure.
Sometimes I want to see a JSON in runtime, to check what is going wrong or what was expected. A colleague cheered on me: „you get that done in an hour“. He was right as far as the parsing code is concerned. Making this into a widget and setting the widget into a testing. app and checking against *.json-files from the wild, takes quite a while. There is so much garbage using extension .json out there.
Usage
Define a subform inside your form and attach the widget DBZ_JSONWidget. The widget is of type text. Set the text-content to the path point at a JSON-document. The Tester.app shows how to do.
Application
Here you see a GeoJSON, very variable structured:
Roman and cyrillic characters mixed in this screenshot
Download
The compilied component/widget for download. Use inside your database as is. JSON-errors will be shown inside the widget. Look at this screenshot. Her is the tester.4dbase for download. The widget is V15.
New version as of 14 nov 2016: shows key when data empty
Sourcecode
If you want to enhance the component, add features, downgrad to V14, you need the sourcecode. I’ll mail you a copy of that, as soon as you encourage my coding-efforts sending me 50,-€. Thanks!