{"id":298,"date":"2024-03-19T16:56:00","date_gmt":"2024-03-19T15:56:00","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=298"},"modified":"2024-03-26T09:56:51","modified_gmt":"2024-03-26T08:56:51","slug":"schreiben-von-json-daten-aus-java-records-mit-gson","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=298","title":{"rendered":"Schreiben von JSON-Daten aus Java-Records mit Gson"},"content":{"rendered":"\n<p>JSON (JavaScript Object Notation) ist ein weit verbreitetes Datenformat, das in der heutigen Softwareentwicklung h\u00e4ufig verwendet wird. Es ist einfach zu lesen und zu schreiben, plattformunabh\u00e4ngig und gut lesbar f\u00fcr Menschen und Maschinen gleicherma\u00dfen. Gson ist eine Java-Bibliothek, die es erm\u00f6glicht, Java-Objekte einfach in JSON umzuwandeln und umgekehrt. In diesem Artikel werden wir uns darauf konzentrieren, wie man Daten mithilfe von Gson in das JSON-Format schreibt, wobei Java Records verwendet werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was ist Gson?<\/h2>\n\n\n\n<p>Gson ist eine Java-Bibliothek, die von Google entwickelt wurde, um die Umwandlung von Java-Objekten in JSON und umgekehrt zu erleichtern. Es bietet eine einfache API, um Java-Objekte in JSON zu serialisieren (das hei\u00dft, in eine Zeichenfolge im JSON-Format umzuwandeln) und umgekehrt zu deserialisieren (das hei\u00dft, JSON-Text in Java-Objekte zu konvertieren).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Die Vorteile von Java Records gegen\u00fcber klassischen POJO-Klassen<\/h2>\n\n\n\n<p>Java Records sind eine neue Funktion in Java, die mit JDK 14 eingef\u00fchrt wurde. Sie bieten eine kompaktere Syntax zum Definieren von Datentr\u00e4gerklassen, die nur zur Speicherung von Daten verwendet werden, und sind besonders gut geeignet, wenn es um die Erstellung von Immutable-Daten geht. Im Vergleich zu klassischen POJO-Klassen haben Java Records folgende Vorteile:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Kompakte Syntax<\/strong>: Mit Java Records k\u00f6nnen Sie die gesamte Definition einer Datenklasse in einer einzigen Zeile schreiben, was den Code k\u00fcrzer und leichter lesbar macht.<\/li>\n\n\n\n<li><strong>Implizite Methoden<\/strong>: Java Records generieren implizit standardm\u00e4\u00dfige Methoden wie <code>equals()<\/code>, <code>hashCode()<\/code> und <code>toString()<\/code>, was den Entwicklungsprozess beschleunigt und Fehler reduziert.<\/li>\n\n\n\n<li><strong>Unver\u00e4nderlichkeit (Immutable)<\/strong>: Die Felder von Java Records sind standardm\u00e4\u00dfig final und k\u00f6nnen nicht ge\u00e4ndert werden, wodurch die Unver\u00e4nderlichkeit der Daten gew\u00e4hrleistet wird, was besonders in multithreaded Umgebungen wichtig ist.<\/li>\n\n\n\n<li><strong>Automatische Destrukturierung<\/strong>: Java Records unterst\u00fctzen die Destrukturierung, was bedeutet, dass Sie die Felder eines Records direkt in Variablen extrahieren k\u00f6nnen, was den Code lesbarer macht.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Das Schreiben von Daten in JSON mit Gson unter Verwendung von Java Records<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Einfaches Beispiel<\/h3>\n\n\n\n<p>Das Schreiben von Daten in JSON mit Gson unter Verwendung von Java Records ist ein einfacher Prozess. Im Folgenden wird zun\u00e4chst ein einfaches Beispiel erl\u00e4utert, um die Grundlagen zu demonstrieren.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. Gson-Bibliothek einbinden<\/h4>\n\n\n\n<p>Bevor wir Gson verwenden k\u00f6nnen, m\u00fcssen wir sicherstellen, dass die Gson-Bibliothek unserem Projekt hinzugef\u00fcgt wurde.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2. Java Records erstellen<\/h4>\n\n\n\n<p>Als n\u00e4chstes verwenden wir Java Records anstelle herk\u00f6mmlicher Java-Klassen, um unsere Datenmodelle zu definieren. Hier ist ein einfaches Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">public record Person(<span class=\"hljs-built_in\">String<\/span> name, int age) {}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">3. Gson-Objekt erstellen<\/h4>\n\n\n\n<p>Wir m\u00fcssen ein Gson-Objekt erstellen, um die Serialisierung durchzuf\u00fchren. Dies kann mit einem einfachen Aufruf des Gson-Konstruktors erfolgen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Gson gson = <span class=\"hljs-keyword\">new<\/span> Gson();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">4. Daten in JSON schreiben<\/h4>\n\n\n\n<p>Nun k\u00f6nnen wir unsere Java Records in JSON konvertieren. Gson bietet verschiedene Methoden daf\u00fcr, aber die g\u00e4ngigste ist <code>toJson()<\/code>. Hier ist ein Beispiel, wie man ein <code>Person<\/code>-Record in JSON schreibt:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Person person = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"Max Mustermann\"<\/span>, <span class=\"hljs-number\">30<\/span>);\n<span class=\"hljs-built_in\">String<\/span> json = gson.toJson(person);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Das resultierende JSON w\u00e4re:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JSON \/ JSON mit Kommentaren\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\">{<span class=\"hljs-attr\">\"name\"<\/span>:<span class=\"hljs-string\">\"Max Mustermann\"<\/span>,<span class=\"hljs-attr\">\"age\"<\/span>:<span class=\"hljs-number\">30<\/span>}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON mit Kommentaren<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">5. JSON-Daten speichern<\/h4>\n\n\n\n<p>Schlie\u00dflich k\u00f6nnen wir das generierte JSON in einer Datei speichern oder an eine API senden, je nachdem, was wir mit den Daten vorhaben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Komplexes Beispiel<\/h3>\n\n\n\n<p>Nun m\u00f6chten wir ein komplexeres Beispiel betrachten, das zeigt, wie Gson auch mit Unterobjekten und Listen umgehen kann.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. Java Records erstellen<\/h4>\n\n\n\n<p>Wir verwenden weiterhin Java Records, um unsere komplexeren Datenmodelle zu definieren:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">public record Person(<span class=\"hljs-built_in\">String<\/span> name, int age, Address address, List&lt;<span class=\"hljs-built_in\">String<\/span>&gt; hobbies) {}\n\npublic record Address(<span class=\"hljs-built_in\">String<\/span> street, <span class=\"hljs-built_in\">String<\/span> city, <span class=\"hljs-built_in\">String<\/span> zipCode) {}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">2. Daten in JSON schreiben<\/h4>\n\n\n\n<p>Wir k\u00f6nnen nun ein <code>Person<\/code>-Record mit einer Adresse und einer Liste von Hobbys erstellen und in JSON schreiben:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Person person = <span class=\"hljs-keyword\">new<\/span> Person(<span class=\"hljs-string\">\"Max Mustermann\"<\/span>, <span class=\"hljs-number\">30<\/span>,\n                            <span class=\"hljs-keyword\">new<\/span> Address(<span class=\"hljs-string\">\"Musterstra\u00dfe 123\"<\/span>, <span class=\"hljs-string\">\"Musterstadt\"<\/span>, <span class=\"hljs-string\">\"12345\"<\/span>),\n                            List.of(<span class=\"hljs-string\">\"Programming\"<\/span>, <span class=\"hljs-string\">\"Reading\"<\/span>, <span class=\"hljs-string\">\"Hiking\"<\/span>));\n\n<span class=\"hljs-built_in\">String<\/span> json = gson.toJson(person);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Das resultierende JSON w\u00e4re \u00e4hnlich wie im vorherigen Beispiel, jedoch mit einer zus\u00e4tzlichen verschachtelten Struktur f\u00fcr die Adresse und einer Liste von Hobbys.<\/p>\n\n\n\n<p>In diesem Beispiel sehen wir, wie Gson problemlos mit komplexen Java Records umgehen kann, um sie in das JSON-Format zu konvertieren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Das Schreiben von Daten in JSON mit Gson unter Verwendung von Java Records ist ein einfacher und unkomplizierter Prozess. Indem Sie die oben genannten Schritte befolgen, k\u00f6nnen Sie Ihre Datenmodelle effizient in JSON konvertieren und sie in Dateien speichern oder an andere Systeme senden. Gson bietet eine leistungsstarke und flexible API, die es Ihnen erm\u00f6glicht, die Konvertierung nach Ihren Anforderungen anzupassen. Von einfachen Records bis hin zu komplexen Strukturen mit verschachtelten Unterrecords und Listen &#8211; Gson macht die Arbeit effizient und zuverl\u00e4ssig, auch unter Verwendung der modernen Features von Java Records.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JSON (JavaScript Object Notation) ist ein weit verbreitetes Datenformat, das in der heutigen Softwareentwicklung h\u00e4ufig verwendet wird. Es ist einfach zu lesen und zu schreiben, plattformunabh\u00e4ngig und gut lesbar f\u00fcr Menschen und Maschinen gleicherma\u00dfen. Gson ist eine Java-Bibliothek, die es erm\u00f6glicht, Java-Objekte einfach in JSON umzuwandeln und umgekehrt. In diesem Artikel werden wir uns darauf [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-298","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=298"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/298\/revisions"}],"predecessor-version":[{"id":299,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/298\/revisions\/299"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}