Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Java EE 8: Ein erster Blick

JSON-Verarbeitung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die JSON-Verarbeitung erfährt eine Aufwertung im Kontext der Java-EE-8-Spezifikation: So unterstützt JSON-P nun neue Mechanismen wie etwa JsonPointer oder JsonPatch, und mit JSON-B steht eine Lösung für das bequeme Serialisieren und Deserialisieren von Java-Klassen in Richtung von JSON-Objekten und umgekehrt zur Verfügung.

Transkript

Die JSON-Verarbeitung ist im Kontext der Java-EE-8-Spezifikation deutlich aufgewertet worden. In diesem Video werden wir uns damit auseinandersetzen, welche Erweiterungen es im Kontext des JSON-P-Frameworks für die Verarbeitung von JSON-Daten gegeben hat. Und wir werden uns das neue JSON-B-Framework für die Datenbindung aus JSON-Daten in Richtung Java-Klassen und andersherum einmal anschauen. JSON-P, also die API für die Verarbeitung von JSON-Dokumenten, war schon in der Vergangenheit zu Recht sehr beliebt und ist sehr, sehr gerne eingesetzt worden, denn es ermöglichte dem Entwickler ohne großen Aufwand das Parsen und Verarbeiten von JSON-basierten Daten. Das Ganze ist nun erweitert worden, und zwar gibt es Unterstützung für neue Standards beziehungsweise Entwicklungen im JSON-Umfeld, zum Beispiel, für JsonPointer zur Adressierung innerhalb von JSON-Dokumenten und JsonPatch für eine erleichterte Verarbeitung und Änderung von JSON-Objekten in Richtung Server. Ebenfalls überarbeitet wurde die Bearbeitung und Transformation von JSON-Objekten und Arrays. Da sind intern viele, viele Änderungen vorgenommen, die sich dann in Bezug auf die Performance auswirken. JSON-P unterstützt nun auch Streaming APIs, also die Java Stream-Methodik, und unterstützt große JSON-Objekte deutlich besser als in der Vergangenheit. JsonPointer ist eine Spezifikation, die es uns erlauben soll, bestimmte Elemente in JSON-Objekten einfacher zu identifizieren und zu erreichen. Sie verwendet eine Notation, die so ein wenig an Pfadangaben erinnert. Hier wird im phone-Objekt die Eigenschaft mobile adressiert. Wir können auch mit numerischen Werten arbeiten. Dann bezieht es sich auf Arrays. Hier wird innerhalb des parents-Arrays das erste untergeordnete Element adressiert. Nehmen wir ein Beispiel. Wir haben hier ein Array, in dem sich zwei Objekte befinden. Beide verfügen über die Eigenschaft name. Wir können nun eine JsonPointer-Instanz erzeugen, die auf das zweite name-Element zeigt ausgedrückt über den Index 1, der Index ist nullbasierend, und dann eben die Angabe des Feldes, das uns interessiert. Wir sind dann in der Lage, diesen Wert abzurufen und ihn zu manipulieren und im Dokument den Wert Müller durch Schulze zu ersetzen. Das alles ist in der JsonPointer-Implementierung der JSON-P Spezifikation möglich. JsonPatch ist eine Spezifikation, die es erlauben soll, JSON-Dokumente zu ändern. Und zwar werden mit Hilfe von JsonPatch die Änderungen selber spezifiziert. JsonPatch-Dokumente an sich sind auch wieder JSON-Dokumente. In aller Regel wird ein JsonPatch-Vorgang über HTTP ausgeführt. Natürlich kann man aber auch diese Dokumente, diese JsonPatch-Spezifikationen lokal speichern und sie später nachgelagert ausführen. Es muss also nicht zwingend über HTTP laufen, aber das ist die Art und Weise, wie es meistens gemacht wird. Nehmen wir ein Beispiel. Wir haben hier ein Dokument, in dem ein Array definiert ist. Innerhalb dieses Arrays befinden sich zwei Objekte. Beide Objekte verfügen über eine Eigenschaft name. Wir haben nun die Definition eines JsonPatch-Dokumentes. Dieses JsonPatch-Dokument definiert das, als Operation Replace vorgenommen wird, das heißt, es wird ein Wert in einem Feld verändert werden. Das Feld, das adressiert wird, ist das Feld name im Objekt mit dem Index 1 in dem zugrunde liegenden Array, das heißt, wir ändern den zweiten Eintrag. Und die Änderung, die übertragen wird, ist, dass der Wert von Müller auf Schulze geändert wird. Wenn das Ganze dann ausgeführt wird, haben wir ein JSON-Dokument, in dem sich ein Array befindet, das zwei Objekte beinhaltet, von denen das zweite Objekt eine Eigenschaft name mit dem Wert Schulze hat. Ein neues Mitglied im Kontext der JSON-Datenverarbeitung von Java-E8 ist JSON-B. JSON-B ist eine neue Datenbindungsspezifikation, und diese Datenbindungsspezifikation funktioniert analog zu JAX-B für XML-Dokumente, das heißt, ich definiere meine Klasse, und anhand von Informationen, die optional im Kontext dieser Klasse definiert sind, kann dann JSON-B die Klasse nach JSON übersetzen oder JSON-Dokumente in Klasseninstanzen wieder zurückübersetzen. Das Ganze ist sehr weitreichend anpassbar, und für mich als Entwickler bedeutet das, dass ich ungefähr 80% der Handarbeit, die ich in der Vergangenheit hatte, dann automatisiert erledigen lassen kann. Sehen wir uns an, wie das Ganze funktioniert. Zunächst einmal definiere ich im Kontext von JSON-B eine Entität. Ich definiere hier eine Klasse mit dem Namen Dog, die verfügt über drei öffentliche Eigenschaften: name, age und bitable, die geben Auskunft darüber, wie der Hund heißt, wie alt er ist und ob er in der Lage ist, zu beißen. Mit Hilfe von JSON-B kann ich jetzt diese Klasse nutzen, um Instanzen zu serialisieren und dann später wieder zu deserialisieren. Ich erzeuge also zunächst einmal eine neue Dog-Instanz, weise ihr die Werte Falco, 4 und false für die Eigenschaften name, age und bitable zu und serialisieren dann. Diese Serialisierung läuft mit Hilfe einer JSON-B-Builder-Instanz, und die Instanz verfügt über die Methode toJson. Im Ergebnis wird ein JSON-Dokument erzeugt, das genau diese Eigenschaften beinhaltet und die Werte natürlich auch mit sich führt. Dieses Dokument kann ich jetzt weitergeben. Ich kann dieses Dokument natürlich aber auch irgendwoher zurückerhalten. Und das, was ich dann zurückerhalten habe, kann ich mit Hilfe der fromJson-Methode der JSON-B-Instanz dann wieder deserialisieren und entsprechend in meinem Code damit weiterarbeiten. Wenn Sie in der Vergangenheit schon mal mit JSON-P gearbeitet haben und von Hand so ein einfaches JSON-Dokument dann deserialisiert haben, werden Sie diese Erleichterung, die wir mit Hilfe von JSON-B hier haben, zu schätzen wissen. Das sind deutlich weniger Codes, die wir schreiben müssen, und vor allen Dingen ist das Ganze auch noch typsicher, ich spare mir als Entwickler eine Menge an Arbeit im Vergleich zur händischen Vorgehensweise in der Vergangenheit ein. Und damit haben wir uns mit den wesentlichen Neuerungen im JSON-Umfeld auseinandergesetzt. Wir haben besprochen, welche Neuerungen es im Umfeld von JSON-P gibt. Da wären also JsonPointer, JsonPatch zu nennen, die verbesserte Verarbeitung von großen Dokumenten. Und wir haben uns die neue JSON-B-Spezifikation einmal angeschaut und uns angeschaut, wie wir damit arbeiten können, wie wir also eine Entität serialisieren und dann auch wieder deserialisieren können.

Java EE 8: Ein erster Blick

Lernen Sie die wichtigsten Neuerungen und Verbesserungen der akutellen Java-EE-Spezifikation kennen.

43 min (6 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:13.09.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!