{"id":68,"date":"2023-12-05T16:13:00","date_gmt":"2023-12-05T15:13:00","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=68"},"modified":"2024-01-08T09:13:43","modified_gmt":"2024-01-08T08:13:43","slug":"json-mit-jackson-in-java-verarbeiten-und-erzeugen","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=68","title":{"rendered":"JSON mit Jackson in Java verarbeiten und erzeugen"},"content":{"rendered":"\n<p>Die Jackson-Bibliothek ist ein leistungsstarkes Java-Framework, das das Parsen und Generieren von JSON-Daten in Java-Anwendungen erm\u00f6glicht. JSON (JavaScript Object Notation) ist ein leicht verst\u00e4ndliches Datenformat, das f\u00fcr den Datenaustausch zwischen Anwendungen weit verbreitet ist. In diesem Artikel werden wir uns auf die praxisnahe Anwendung der Jackson-Bibliothek konzentrieren, um JSON-Daten in Java zu parsen und zu generieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Einf\u00fchrung in Jackson:<\/strong><\/h3>\n\n\n\n<p>Jackson bietet eine umfassende Suite von Bibliotheken f\u00fcr die Verarbeitung von JSON-Daten in Java. Sie erm\u00f6glicht das Konvertieren von Java-Objekten in JSON und umgekehrt. Die Bibliothek bietet eine effiziente und flexible M\u00f6glichkeit, JSON-Daten in Java-Anwendungen zu integrieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Einrichtung von Jackson:<\/strong><\/h3>\n\n\n\n<p>Bevor wir mit der Verwendung von Jackson beginnen k\u00f6nnen, m\u00fcssen wir sicherstellen, dass die Bibliothek in unserem Projekt eingebunden ist. Dies kann durch das Hinzuf\u00fcgen der entsprechenden Abh\u00e4ngigkeit zu unserem Build-Tool (wie Maven oder Gradle) erfolgen.<\/p>\n\n\n\n<p><strong>Maven-Abh\u00e4ngigkeit:<\/strong><\/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> <span class=\"hljs-comment\">&lt;!-- Aktuelle Version \u00fcberpr\u00fcfen --&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<p>Sobald die Abh\u00e4ngigkeit hinzugef\u00fcgt ist, k\u00f6nnen wir mit dem Parsen und Generieren von JSON-Daten beginnen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. JSON-Parsing mit Jackson:<\/strong><\/h3>\n\n\n\n<p>Das Parsen von JSON-Daten mit Jackson ist einfach und erfordert nur wenige Schritte. Zuerst m\u00fcssen wir eine Instanz des <code>ObjectMapper<\/code> erstellen, der die zentrale Klasse von Jackson ist, die f\u00fcr das Konvertieren von JSON-Daten verantwortlich ist.<\/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\">ObjectMapper objectMapper = <span class=\"hljs-keyword\">new<\/span> ObjectMapper();<\/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<p>Nehmen wir an, wir haben folgendes JSON:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JSON \/ JSON mit Kommentaren\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\">{\n  <span class=\"hljs-attr\">\"name\"<\/span>: <span class=\"hljs-string\">\"John Doe\"<\/span>,\n  <span class=\"hljs-attr\">\"age\"<\/span>: <span class=\"hljs-number\">30<\/span>,\n  <span class=\"hljs-attr\">\"city\"<\/span>: <span class=\"hljs-string\">\"Example City\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><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<p>Wir k\u00f6nnen nun dieses JSON in ein Java-Objekt parsen:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-built_in\">String<\/span> json = <span class=\"hljs-string\">\"{ \\\"name\\\": \\\"John Doe\\\", \\\"age\\\": 30, \\\"city\\\": \\\"Example City\\\" }\"<\/span>;\n\n<span class=\"hljs-keyword\">try<\/span> {\n    <span class=\"hljs-comment\">\/\/ JSON in Java-Objekt parsen<\/span>\n    Person person = objectMapper.readValue(json, Person.class);\n    System.out.println(person.toString());\n} <span class=\"hljs-keyword\">catch<\/span> (IOException e) {\n    e.printStackTrace();\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><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>Hierbei handelt es sich um eine einfache Java-Klasse <code>Person<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" 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    <span class=\"hljs-keyword\">private<\/span> String city;\n\n    <span class=\"hljs-comment\">\/\/ Getter und Setter<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><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\"><strong>4. JSON-Generierung mit Jackson:<\/strong><\/h3>\n\n\n\n<p>Die Generierung von JSON-Daten mit Jackson ist genauso einfach wie das Parsen. Wir m\u00fcssen ein Java-Objekt erstellen und es mithilfe des <code>ObjectMapper<\/code> in JSON konvertieren.<\/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();\nperson.setName(<span class=\"hljs-string\">\"Jane Doe\"<\/span>);\nperson.setAge(<span class=\"hljs-number\">25<\/span>);\nperson.setCity(<span class=\"hljs-string\">\"Another City\"<\/span>);\n\n<span class=\"hljs-keyword\">try<\/span> {\n    <span class=\"hljs-comment\">\/\/ Java-Objekt in JSON generieren<\/span>\n    <span class=\"hljs-built_in\">String<\/span> generatedJson = objectMapper.writeValueAsString(person);\n    System.out.println(generatedJson);\n} <span class=\"hljs-keyword\">catch<\/span> (JsonProcessingException e) {\n    e.printStackTrace();\n}<\/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<h3 class=\"wp-block-heading\"><strong>5. Anpassungen und Konfiguration:<\/strong><\/h3>\n\n\n\n<p>Jackson erm\u00f6glicht eine umfassende Anpassung und Konfiguration. Wir k\u00f6nnen beispielsweise Annotationen wie <code>@JsonProperty<\/code> verwenden, um den Namen der JSON-Attribute anzugeben, wenn er vom Java-Namen abweicht. Ebenso k\u00f6nnen wir mit verschiedenen Konfigurationsoptionen arbeiten, um das Verhalten von Jackson anzupassen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Komplexe Szenarien:<\/strong><\/h3>\n\n\n\n<p>In komplexeren Szenarien, in denen JSON-Strukturen verschachtelt sind oder Listen von Objekten vorhanden sind, bietet Jackson spezielle Annotationen und Funktionen, um diese F\u00e4lle abzudecken. Beispielsweise k\u00f6nnen die Annotationen <code>@JsonInclude<\/code> oder <code>@JsonFormat<\/code> verwendet werden, um das Verhalten der Konvertierung zu steuern.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7. Fehlerbehandlung:<\/strong><\/h3>\n\n\n\n<p>Es ist wichtig, die Fehlerbehandlung beim Parsen und Generieren von JSON nicht zu vernachl\u00e4ssigen. Jackson kann verschiedene Ausnahmen werfen, z.B. <code>JsonParseException<\/code> oder <code>JsonMappingException<\/code>. Eine angemessene Fehlerbehandlung ist entscheidend, um robuste Anwendungen zu gew\u00e4hrleisten.<\/p>\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\">try<\/span> {\n    <span class=\"hljs-comment\">\/\/ JSON in Java-Objekt parsen<\/span>\n    Person person = objectMapper.readValue(json, Person.class);\n    System.out.println(person.toString());\n} <span class=\"hljs-keyword\">catch<\/span> (IOException e) {\n    e.printStackTrace();\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<h3 class=\"wp-block-heading\"><strong>8. Fazit:<\/strong><\/h3>\n\n\n\n<p>Die Jackson-Bibliothek bietet eine leistungsstarke und flexible M\u00f6glichkeit, JSON-Daten in Java-Anwendungen zu verarbeiten. Durch die Verwendung des <code>ObjectMapper<\/code> k\u00f6nnen Entwickler JSON-Daten einfach in Java-Objekte umwandeln und umgekehrt. Die zahlreichen Anpassungsm\u00f6glichkeiten und die gute Performance machen Jackson zu einer beliebten Wahl f\u00fcr die JSON-Verarbeitung in der Java-Entwicklung.<\/p>\n\n\n\n<p>In diesem Artikel haben wir die Grundlagen der JSON-Verarbeitung mit Jackson behandelt und einen praxisnahen Einblick in das Parsen und Generieren von JSON-Daten in Java-Anwendungen gegeben. Entwickler k\u00f6nnen nun diese Kenntnisse nutzen, um effektiv mit JSON-Daten in ihren Projekten zu arbeiten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Jackson-Bibliothek ist ein leistungsstarkes Java-Framework, das das Parsen und Generieren von JSON-Daten in Java-Anwendungen erm\u00f6glicht. JSON (JavaScript Object Notation) ist ein leicht verst\u00e4ndliches Datenformat, das f\u00fcr den Datenaustausch zwischen Anwendungen weit verbreitet ist. In diesem Artikel werden wir uns auf die praxisnahe Anwendung der Jackson-Bibliothek konzentrieren, um JSON-Daten in Java zu parsen und zu [&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-68","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\/68","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=68"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/68\/revisions"}],"predecessor-version":[{"id":69,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/68\/revisions\/69"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}