JSON (JavaScript Object Notation) ist ein weit verbreitetes Datenformat, das für den Austausch von strukturierten Daten zwischen verschiedenen Plattformen verwendet wird. In Java ist Jackson eine leistungsstarke Bibliothek, die es ermöglicht, 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.
Grundlagen des Unmarshalling mit Jackson
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.
Maven-Abhängigkeit hinzufügen
Um Jackson in Ihrem Java-Projekt zu verwenden, müssen Sie die entsprechenden Abhängigkeiten in Ihrer Maven-Datei hinzufügen:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
Code-Sprache: HTML, XML (xml)
Erstellen einer POJO-Klasse
Bevor Sie JSON-Daten in Java-Objekte umwandeln können, müssen Sie eine Plain Old Java Object (POJO)-Klasse erstellen, die die Struktur der JSON-Daten widerspiegelt. Zum Beispiel:
public class Person {
private String name;
private int age;
// Getter und Setter Methoden
}
Code-Sprache: PHP (php)
JSON-Daten in ein Objekt umwandeln
Nun können Sie die Jackson-Bibliothek verwenden, um JSON-Daten in ein Objekt umzuwandeln:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonUnmarshaller {
public static void main(String[] args) throws Exception {
String json = "{\"name\":\"John Doe\",\"age\":30}";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
}
}
Code-Sprache: JavaScript (javascript)
Diese Grundlagen sind wichtig, um den Unmarshalling-Prozess zu verstehen, bevor wir uns dem Unmarshalling in Arrays und Collections zuwenden.
Unmarshalling in Arrays
Wenn Ihre JSON-Daten ein Array von Objekten darstellen, können Sie diese leicht in ein Java-Array umwandeln. Betrachten wir ein einfaches Beispiel:
JSON-Daten mit einem Array
[
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 22}
]
Code-Sprache: JSON / JSON mit Kommentaren (json)
Unmarshalling in ein Person[]-Array
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonArrayUnmarshaller {
public static void main(String[] args) throws Exception {
String jsonArray = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30},{\"name\":\"Charlie\",\"age\":22}]";
ObjectMapper objectMapper = new ObjectMapper();
Person[] personArray = objectMapper.readValue(jsonArray, Person[].class);
for (Person person : personArray) {
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("-----");
}
}
}
Code-Sprache: JavaScript (javascript)
In diesem Beispiel wird die Jackson-Bibliothek verwendet, um das JSON-Array in ein Array von Personenobjekten umzuwandeln. Beachten Sie die Verwendung von Person[].class
, um Jackson mitzuteilen, dass es sich um ein Array von Personen handelt.
Unmarshalling in Collections
Neben Arrays können JSON-Daten auch in andere Collection-Typen, wie Set oder Map, umgewandelt werden. Hier ist ein Beispiel für die Umwandlung von JSON-Daten in eine Set von Personen:
JSON-Daten mit einem Array
[
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 22}
]
Code-Sprache: JSON / JSON mit Kommentaren (json)
Unmarshalling in eine Liste von Personen
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
public class JsonListUnmarshaller {
public static void main(String[] args) throws Exception {
String jsonArray = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30},{\"name\":\"Charlie\",\"age\":22}]";
ObjectMapper objectMapper = new ObjectMapper();
List<Person> personList = objectMapper.readValue(jsonArray, new TypeReference<List<Person>>() {});
for (Person person : personList) {
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("-----");
}
}
}
Code-Sprache: JavaScript (javascript)
Hier wird das JSON-Array in eine Liste von Personenobjekten umgewandelt. Ähnlich wie bei der Umwandlung in ein Array wird TypeReference<List<Person>>
verwendet, um Jackson mitzuteilen, dass es sich um eine Liste von Personen handelt.
Fazit
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önnen Sie JSON-Daten nahtlos in Java-Objekte umwandeln und diese dann in Ihren Anwendungen verwenden. Beachten Sie dabei die Verwendung von Person[].class
für die Umwandlung in Arrays, um Jackson die korrekten Informationen zu geben.
Dieses Wissen ermöglicht es Ihnen, JSON-Daten effektiv in Ihrer Java-Anwendung zu verarbeiten und die Vorteile von Jackson als leistungsfähige JSON-Bibliothek zu nutzen.