Konvertieren Sie String mit Gson in JsonObject

1. Übersicht

Wenn Sie mit JSON in Java mithilfe der Gson-Bibliothek arbeiten, stehen uns verschiedene Optionen zur Verfügung, um unformatiertes JSON in andere Klassen oder Datenstrukturen zu konvertieren, mit denen wir einfacher arbeiten können.

Beispielsweise können wir JSON-Zeichenfolgen in eine Map konvertieren oder eine benutzerdefinierte Klasse mit Zuordnungen erstellen.

Manchmal ist es jedoch praktisch, unseren JSON in ein generisches Objekt konvertieren zu können. In diesem Tutorial werden wir sehen, wie Gson uns ein JsonObject aus einem String geben kann.

2. Maven-Abhängigkeit

Zunächst müssen wir die gson- Abhängigkeit in unsere pom.xml aufnehmen :

 com.google.code.gson gson 2.8.5 

Wir können die neueste Version von gson auf Maven Central finden.

3. Verwenden von JsonParser

Der erste Ansatz , den wir zum Umwandeln eines JSON sehen werden String zu einem JsonObject ist ein zweistufiger Prozess, der die verwendet JsonParser Klasse.

Im ersten Schritt müssen wir unseren ursprünglichen String analysieren .

Gson stellt uns einen Parser namens JsonParser zur Verfügung, der den angegebenen JSON- String in einen Analysebaum von JsonElements analysiert :

public JsonElement parse(String json) throws JsonSyntaxException

Sobald wir unseren String in einem JsonElement- Baum analysiert haben , verwenden wir die Methode getAsJsonObject () , die das gewünschte Ergebnis zurückgibt .

Mal sehen, wie wir unser letztes JsonObject bekommen :

String json = "{ \"name\": \"Baeldung\", \"java\": true }"; JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject(); Assert.assertTrue(jsonObject.isJsonObject()); Assert.assertTrue(jsonObject.get("name").getAsString().equals("Baeldung")); Assert.assertTrue(jsonObject.get("java").getAsBoolean() == true);

4. Verwenden von fromJson

In unserem zweiten Ansatz erfahren Sie, wie Sie eine Gson- Instanz erstellen und die fromJson- Methode verwenden. Diese Methode deserialisiert den angegebenen JSON- String in ein Objekt der angegebenen Klasse:

public  T fromJson(String json, Class classOfT) throws JsonSyntaxException

Mal sehen, wie wir diese Methode verwenden können, um unseren JSON- String zu analysieren und die JsonObject- Klasse als zweiten Parameter zu übergeben:

String json = "{ \"name\": \"Baeldung\", \"java\": true }"; JsonObject convertedObject = new Gson().fromJson(json, JsonObject.class); Assert.assertTrue(convertedObject.isJsonObject()); Assert.assertTrue(convertedObject.get("name").getAsString().equals("Baeldung")); Assert.assertTrue(convertedObject.get("java").getAsBoolean() == true);

5. Schlussfolgerung

In diesem grundlegenden Tutorial haben wir zwei verschiedene Möglichkeiten kennengelernt, wie Sie mithilfe der Gson-Bibliothek ein JsonObject aus einem JSON-formatierten String in Java abrufen können . Folglich sollten wir die verwenden, die besser zu unseren Zwischen-JSON-Operationen passt.

Wie üblich ist der Quellcode für diese Beispiele auf GitHub verfügbar.