Einführung
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenwechselformat. Es ist einfach zu lesen und zu schreiben und wird weit verbreitet für den Datenaustausch zwischen Client und Server verwendet. In diesem Lab werden Sie lernen, wie Sie beliebte Java-JSON-Bibliotheken wie Jackson, Gson, Genson und Json-io verwenden, um Objekte in das JSON-Format zu serialisieren und zu deserialisieren.
Projekt einrichten
- Öffnen Sie das Terminal und navigieren Sie zum Projektverzeichnis, indem Sie
cd ~/projectausführen. - Erstellen Sie eine neue Java-Datei für dieses Lab, indem Sie im Terminal den Befehl
touch JsonLab.javaausführen und den folgenden Code einfügen:
import java.io.IOException;
public class JsonLab {
public static void main(String[] args) throws IOException {
ClassA classAObj = new ClassA("Demo", 20.0); // Objekt erstellen, um es später zu serialisieren und zu deserialisieren
}
// Fügen Sie hier die ClassA-Klasse hinzu
}
Verwendung der Jackson-Bibliothek
- Um mit Jackson zu arbeiten, müssen wir die Jackson-Maven-Abhängigkeit in die
pom.xml-Datei hinzufügen:
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
- Als Nächstes müssen wir Objekte in einen JSON-String serialisieren und deserialisieren, indem wir die
ObjectMapper-Klasse wie folgt verwenden:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonLab {
public static void main(String[] args) throws IOException {
ObjectMapper objMapper = new ObjectMapper();
ClassA classAObj = new ClassA("Demo", 20.0);
// Serialisierung
String jsonString = objMapper.writeValueAsString(classAObj);
System.out.println("Serialisierter String: " + jsonString);
// Deserialisierung
ClassA objFromStr = objMapper.readValue(jsonString, ClassA.class);
System.out.print("Deserialisierter Objekt: " + objFromStr.getField1() + " " + objFromStr.getField2());
}
}
Verwendung der Gson-Bibliothek
- Um mit Gson zu arbeiten, müssen wir die Gson-Maven-Abhängigkeit in die
pom.xml-Datei hinzufügen:
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
</dependencies>
- Als Nächstes müssen wir Objekte mithilfe eines
Gson-Objekts serialisieren und deserialisieren, wie folgt:
import com.google.gson.Gson;
public class JsonLab {
public static void main(String[] args) throws IOException {
Gson gson = new Gson();
ClassA obj = new ClassA("Demo", 20.0);
// Serialisierung
String jsonStrFromObj = gson.toJson(obj);
System.out.println("Serialisierter String: " + jsonStrFromObj);
// Deserialisierung
ClassA objFromJsonStr = gson.fromJson(jsonStrFromObj, ClassA.class);
System.out.print("Deserialisierter Objekt: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Verwendung der Genson-Bibliothek
- Um mit Genson zu arbeiten, müssen wir die Genson-Maven-Abhängigkeit in die
pom.xml-Datei hinzufügen:
<dependencies>
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>${genson.version}</version>
</dependency>
</dependencies>
- Als Nächstes müssen wir Objekte mithilfe eines
Genson-Objekts serialisieren und deserialisieren, wie folgt:
import com.owlike.genson.Genson;
public class JsonLab {
public static void main(String[] args) throws IOException {
Genson genson = new Genson();
ClassA obj = new ClassA("Demo", 20.0);
// Serialisierung
String jsonStrFromObj = genson.serialize(obj);
System.out.println("Serialisierter String: " + jsonStrFromObj);
// Deserialisierung
ClassA objFromJsonStr = genson.deserialize(jsonStrFromObj, ClassA.class);
System.out.print("Deserialisierter Objekt: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Verwendung der Json-io-Bibliothek
- Um mit der Json-io-Bibliothek zu arbeiten, müssen wir die Json-io-Maven-Abhängigkeit in die
pom.xml-Datei hinzufügen:
<dependencies>
<dependency>
<groupId>com.cedarsoftware</groupId>
<artifactId>json-io</artifactId>
<version>${json-io.version}</version>
</dependency>
</dependencies>
- Als Nächstes müssen wir Objekte mithilfe von
JsonWriterundJsonReaderserialisieren und deserialisieren, wie folgt:
import com.cedarsoftware.util.io.JsonReader;
import com.cedarsoftware.util.io.JsonWriter;
public class JsonLab {
public static void main(String[] args) throws IOException {
ClassA obj = new ClassA("Demo", 20.0);
// Serialisierung
String jsonStrFromObj = JsonWriter.objectToJson(obj);
System.out.println("Serialisierter String: " + jsonStrFromObj);
// Deserialisierung
ClassA objFromJsonStr = (ClassA) JsonReader.jsonToJava(jsonStrFromObj);
System.out.print("Deserialisierter Objekt: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
}
}
Zusammenfassung
In diesem Lab lernen Sie, wie Sie verschiedene Java-JSON-Bibliotheken verwenden, um Objekte in das JSON-Format zu konvertieren und umgekehrt. Wir haben gelernt, wie Sie die Jackson-, Gson-, Genson- und Json-io-Bibliotheken verwenden, um Objekte zu serialisieren und zu deserialisieren in JSON.



