In den letzten ein, zwei Jahren sind die Ansprüche an die Fähigkeiten einer web-basierten Anwendung immer weiter gestiegen. Das liegt natürlich an und basiert auf der sich weiter verbreitenden Ajax Technologie in den unterschiedlichsten Anwendungen, z.B. auch GoogleMail. Man kann angesichts dieses Trends unterschiedlicher Meinung sein, doch auf jeden Fall ist es manchmal ganz praktisch, dass hier auch grundlegende Basistechologien entwickelt wurden, die manches Extra-Feature ermöglichen.
Bei der Erweiterung einer Web-Anwendung wollte ich nun das Standard-Widget einsetzen, das sicherlich als erstes in jeder Ajax Anwendung eingesetzt wird: ein Autocompleter. Das Szenario war ein wenig komplizierter, parallel zu den Auswahlwerten sollte auch zusätzliche Informationen parallel mit übertragen werden. Das Erzeugen und Auswerten einer XML Datenstruktur war dann schnell ein wenig unübersichtlich.
Ich bin dann auf die Idee gekommen, ein JavaScript Objekt in JSON Notation zu erzeugen und dieses als Kommunikationsmedium zu nutzen. Unterstützt wird das durch einige Java Klassen, das Lesen und Schreiben der Datenobjekte in dieser Notation unterstützten. Eine entsprechende Webseite dokumentiert, welche Möglichkeiten hier in Java bestehen diese Strukturen zu manipulieren. Mit diesen Klassen war es ein Leichtes, eine entsprechende Erweiterung in meine Tapestry-basierte WebAnwendung zu integrieren.
Und übrigens…. Natürlich gibt es auch eine entsprechende Unterstützung für Cocoa basierte Applikationen. Mit CocoaJSON und BSJSONAdditions stehen zwei Objective-C Implementierungen bereit, die ich aber bislang noch nicht habe ausprobieren können.
Diese Repräsentation der Datenstrukturen in JSON ist für mich jedenfalls eine Basis um den Ajax Einsatz in WebAnwendungen zu erleichtern und eine flexibel nutzbare Repräsentation für die Resourcen eines REST WebService anzubieten.
Update
Ich habe heute zufällig eine weitere JSON Implementierung für Cocoa gefunden.