JSON JavaScript Object Notation JSON • JSON steht für "JavaScript Object Notation" und definiert ein Datenformat, in dem Informationen wie Objekte, Arrays und sonstige Variablen in lesbarer Form gespeichert werden können. In den meisten Sprachen gibt es Parser, die den JSON String in eine entsprechende Variable verwandeln. • Die Notation von JSON weicht in einigen Punkten von der JavaScript-Syntax ab: • • Alle Eigenschaftsnamen in einem Objekt müssen in doppelten Anführungszeichen notiert sein. • Führende Kommas in Objekten und Arrays sind verboten. • Bei Zahlen sind führende Nullen verboten und einem Dezimalpunkt muss mindestens eine Ziffer folgen. • Strings müssen durch doppelte Anführungszeichen begrenzt sein. Es darf nur ein beschränktes Set von Zeichen escaped werden. Bestimmte Kontrollzeichen sind ganz verboten. JSON wird häufig in Verbindung mit Ajax genutzt, um einfach Informationen zwischen dem Clienten und dem Server auszutauschen und ist eine praktische Alternative zu XML. http://wiki.selfhtml.org/wiki/JavaScript/JSON 2 JSON Beispiel Value JsonObject Array Key 3 Einsatz • einfaches Datenaustauschformat • JSON wird zur Übertragung und zum Speichern von strukturierten Daten eingesetzt; es dient als Datenformat bei der Serialisierung. Insbesondere bei Webanwendungen und mobilen Apps wird es in Verbindung mit JavaScript, Ajax oder WebSockets zum Transfer von Daten zwischen dem Client und dem Server häufig genutzt. [Wikipedia] Datentypen http://www.tutorialspoint.com/json/json_data_types.htm http://www.tutorialspoint.com/json/json_data_types.htm Frameworks in Java • JSON-P: javax.json - Standardimplementierung • Jackson • Google Gson • JSON-lib • … JSON Processing in Java • JSON-P stellt zwei unterschiedliche JSON-APIs zur Verfügung: • Object Model API: wir verwenden diese API • Streaming API: Low-Level-API, zur effizienten Verarbeitung großer JSON-Datenmengen, vergleichbar mit der StAX API für XML https://jsonp.java.net/ 7 Maven Dependency • Diese Dependency wird nur in JavaSE Projekten gebraucht Zugriff auf JSON-Objekte aus File in ein JsonObject besser ist die Verwendung von try-resources Zugriff auf Elemente des JsonObjects http://www.journaldev.com/2315/java-json-processing-api-example-tutorial 9 1. Lesen aus File • JsonStructure (ein Interface) kann entweder ein JsonArray oder JsonObject sein 1. oder aus String • Man könnte zB ein File per FileUpload hochladen und so auf die Inhalte zugreifen 2. Check the JsonStructure • and cast the JsonStructure to a JsonArray 3. Iterate over a JsonArray JsonObject als String Werte des JsonObjects • Access the Values of the JsonObjects with getInt(), getString(), getNumber(), getBoolean() • Dates and Doubles has to be converted Example … 4. Iterate over a JsonObject Erstellen eines JSONObjekts http://www.journaldev.com/2315/java-json-processing-api-example-tutorial 16 Noch Fragen? 17