{"id":169,"date":"2024-01-14T00:25:41","date_gmt":"2024-01-13T23:25:41","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=169"},"modified":"2024-01-24T00:26:15","modified_gmt":"2024-01-23T23:26:15","slug":"unmarshalling-von-json-daten-in-arrays-und-collections-mit-jackson","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=169","title":{"rendered":"Unmarshalling von JSON-Daten in Arrays und Collections mit Jackson"},"content":{"rendered":"\n<p>JSON (JavaScript Object Notation) ist ein weit verbreitetes Datenformat, das f\u00fcr den Austausch von strukturierten Daten zwischen verschiedenen Plattformen verwendet wird. In Java ist Jackson eine leistungsstarke Bibliothek, die es erm\u00f6glicht, JSON-Daten einfach in Java-Objekte umzuwandeln, und umgekehrt. In diesem Artikel werden wir uns auf das Unmarshalling von JSON-Daten in Arrays und Collections mit Jackson konzentrieren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Grundlagen des Unmarshalling mit Jackson<\/h2>\n\n\n\n<p>Unmarshalling bezieht sich auf den Prozess der Konvertierung von serialisierten Daten, wie sie in JSON vorliegen, in Objekte in einer Programmiersprache. Jackson erleichtert diesen Vorgang in Java erheblich. Bevor wir uns auf Arrays und Collections konzentrieren, schauen wir uns die grundlegenden Schritte des Unmarshallings mit Jackson an.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Maven-Abh\u00e4ngigkeit hinzuf\u00fcgen<\/h3>\n\n\n\n<p>Um Jackson in Ihrem Java-Projekt zu verwenden, m\u00fcssen Sie die entsprechenden Abh\u00e4ngigkeiten in Ihrer Maven-Datei hinzuf\u00fcgen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dependency<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>com.fasterxml.jackson.core<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>jackson-databind<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">version<\/span>&gt;<\/span>2.13.0<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">version<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dependency<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Erstellen einer POJO-Klasse<\/h3>\n\n\n\n<p>Bevor Sie JSON-Daten in Java-Objekte umwandeln k\u00f6nnen, m\u00fcssen Sie eine Plain Old Java Object (POJO)-Klasse erstellen, die die Struktur der JSON-Daten widerspiegelt. Zum Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Person<\/span> <\/span>{\n    <span class=\"hljs-keyword\">private<\/span> String name;\n    <span class=\"hljs-keyword\">private<\/span> int age;\n\n    <span class=\"hljs-comment\">\/\/ Getter und Setter Methoden<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">JSON-Daten in ein Objekt umwandeln<\/h3>\n\n\n\n<p>Nun k\u00f6nnen Sie die Jackson-Bibliothek verwenden, um JSON-Daten in ein Objekt umzuwandeln:<\/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\"><span class=\"hljs-keyword\">import<\/span> com.fasterxml.jackson.databind.ObjectMapper;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">JsonUnmarshaller<\/span> <\/span>{\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) throws Exception {\n        <span class=\"hljs-built_in\">String<\/span> json = <span class=\"hljs-string\">\"{\\\"name\\\":\\\"John Doe\\\",\\\"age\\\":30}\"<\/span>;\n        ObjectMapper objectMapper = <span class=\"hljs-keyword\">new<\/span> ObjectMapper();\n\n        Person person = objectMapper.readValue(json, Person.class);\n\n        System.out.println(<span class=\"hljs-string\">\"Name: \"<\/span> + person.getName());\n        System.out.println(<span class=\"hljs-string\">\"Age: \"<\/span> + person.getAge());\n    }\n}<\/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>Diese Grundlagen sind wichtig, um den Unmarshalling-Prozess zu verstehen, bevor wir uns dem Unmarshalling in Arrays und Collections zuwenden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unmarshalling in Arrays<\/h2>\n\n\n\n<p>Wenn Ihre JSON-Daten ein Array von Objekten darstellen, k\u00f6nnen Sie diese leicht in ein Java-Array umwandeln. Betrachten wir ein einfaches Beispiel:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">JSON-Daten mit einem Array<\/h3>\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\">&#91;\n    {<span class=\"hljs-attr\">\"name\"<\/span>: <span class=\"hljs-string\">\"Alice\"<\/span>, <span class=\"hljs-attr\">\"age\"<\/span>: <span class=\"hljs-number\">25<\/span>},\n    {<span class=\"hljs-attr\">\"name\"<\/span>: <span class=\"hljs-string\">\"Bob\"<\/span>, <span class=\"hljs-attr\">\"age\"<\/span>: <span class=\"hljs-number\">30<\/span>},\n    {<span class=\"hljs-attr\">\"name\"<\/span>: <span class=\"hljs-string\">\"Charlie\"<\/span>, <span class=\"hljs-attr\">\"age\"<\/span>: <span class=\"hljs-number\">22<\/span>}\n]<\/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<h3 class=\"wp-block-heading\">Unmarshalling in ein Person[]-Array<\/h3>\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\"><span class=\"hljs-keyword\">import<\/span> com.fasterxml.jackson.databind.ObjectMapper;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">JsonArrayUnmarshaller<\/span> <\/span>{\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) throws Exception {\n        <span class=\"hljs-built_in\">String<\/span> jsonArray = <span class=\"hljs-string\">\"&#91;{\\\"name\\\":\\\"Alice\\\",\\\"age\\\":25},{\\\"name\\\":\\\"Bob\\\",\\\"age\\\":30},{\\\"name\\\":\\\"Charlie\\\",\\\"age\\\":22}]\"<\/span>;\n        ObjectMapper objectMapper = <span class=\"hljs-keyword\">new<\/span> ObjectMapper();\n\n        Person&#91;] personArray = objectMapper.readValue(jsonArray, Person&#91;].class);\n\n        <span class=\"hljs-keyword\">for<\/span> (Person person : personArray) {\n            System.out.println(<span class=\"hljs-string\">\"Name: \"<\/span> + person.getName());\n            System.out.println(<span class=\"hljs-string\">\"Age: \"<\/span> + person.getAge());\n            System.out.println(<span class=\"hljs-string\">\"-----\"<\/span>);\n        }\n    }\n}<\/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<p>In diesem Beispiel wird die Jackson-Bibliothek verwendet, um das JSON-Array in ein Array von Personenobjekten umzuwandeln. Beachten Sie die Verwendung von <code>Person[].class<\/code>, um Jackson mitzuteilen, dass es sich um ein Array von Personen handelt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unmarshalling in Collections<\/h2>\n\n\n\n<p>Neben Arrays k\u00f6nnen JSON-Daten auch in andere Collection-Typen, wie Set oder Map, umgewandelt werden. Hier ist ein Beispiel f\u00fcr die Umwandlung von JSON-Daten in eine Set von Personen:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">JSON-Daten mit einem Array<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JSON \/ JSON mit Kommentaren\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\">&#91;\n    {<span class=\"hljs-attr\">\"name\"<\/span>: <span class=\"hljs-string\">\"Alice\"<\/span>, <span class=\"hljs-attr\">\"age\"<\/span>: <span class=\"hljs-number\">25<\/span>},\n    {<span class=\"hljs-attr\">\"name\"<\/span>: <span class=\"hljs-string\">\"Bob\"<\/span>, <span class=\"hljs-attr\">\"age\"<\/span>: <span class=\"hljs-number\">30<\/span>},\n    {<span class=\"hljs-attr\">\"name\"<\/span>: <span class=\"hljs-string\">\"Charlie\"<\/span>, <span class=\"hljs-attr\">\"age\"<\/span>: <span class=\"hljs-number\">22<\/span>}\n]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><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<h3 class=\"wp-block-heading\">Unmarshalling in eine Liste von Personen<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> com.fasterxml.jackson.core.type.TypeReference;\n<span class=\"hljs-keyword\">import<\/span> com.fasterxml.jackson.databind.ObjectMapper;\n\n<span class=\"hljs-keyword\">import<\/span> java.util.List;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">JsonListUnmarshaller<\/span> <\/span>{\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) throws Exception {\n        <span class=\"hljs-built_in\">String<\/span> jsonArray = <span class=\"hljs-string\">\"&#91;{\\\"name\\\":\\\"Alice\\\",\\\"age\\\":25},{\\\"name\\\":\\\"Bob\\\",\\\"age\\\":30},{\\\"name\\\":\\\"Charlie\\\",\\\"age\\\":22}]\"<\/span>;\n        ObjectMapper objectMapper = <span class=\"hljs-keyword\">new<\/span> ObjectMapper();\n\n        List&lt;Person&gt; personList = objectMapper.readValue(jsonArray, <span class=\"hljs-keyword\">new<\/span> TypeReference&lt;List&lt;Person&gt;&gt;() {});\n\n        <span class=\"hljs-keyword\">for<\/span> (Person person : personList) {\n            System.out.println(<span class=\"hljs-string\">\"Name: \"<\/span> + person.getName());\n            System.out.println(<span class=\"hljs-string\">\"Age: \"<\/span> + person.getAge());\n            System.out.println(<span class=\"hljs-string\">\"-----\"<\/span>);\n        }\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><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>Hier wird das JSON-Array in eine Liste von Personenobjekten umgewandelt. \u00c4hnlich wie bei der Umwandlung in ein Array wird <code>TypeReference&lt;List&lt;Person&gt;&gt;<\/code> verwendet, um Jackson mitzuteilen, dass es sich um eine Liste von Personen handelt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Die Jackson-Bibliothek erleichtert das Unmarshalling von JSON-Daten in Java erheblich. In diesem Artikel haben wir uns auf das Unmarshalling in Arrays und Collections konzentriert. Durch die Verwendung von Jackson k\u00f6nnen Sie JSON-Daten nahtlos in Java-Objekte umwandeln und diese dann in Ihren Anwendungen verwenden. Beachten Sie dabei die Verwendung von <code>Person[].class<\/code> f\u00fcr die Umwandlung in Arrays, um Jackson die korrekten Informationen zu geben.<\/p>\n\n\n\n<p>Dieses Wissen erm\u00f6glicht es Ihnen, JSON-Daten effektiv in Ihrer Java-Anwendung zu verarbeiten und die Vorteile von Jackson als leistungsf\u00e4hige JSON-Bibliothek zu nutzen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JSON (JavaScript Object Notation) ist ein weit verbreitetes Datenformat, das f\u00fcr den Austausch von strukturierten Daten zwischen verschiedenen Plattformen verwendet wird. In Java ist Jackson eine leistungsstarke Bibliothek, die es erm\u00f6glicht, JSON-Daten einfach in Java-Objekte umzuwandeln, und umgekehrt. In diesem Artikel werden wir uns auf das Unmarshalling von JSON-Daten in Arrays und Collections mit Jackson [&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-169","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\/169","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=169"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/169\/revisions"}],"predecessor-version":[{"id":170,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/169\/revisions\/170"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}