Converteer String naar JsonObject met Gson

1. Overzicht

Wanneer we met JSON in Java werken met behulp van de Gson-bibliotheek, hebben we verschillende opties tot onze beschikking om onbewerkte JSON om te zetten naar andere klassen of datastructuren waarmee we gemakkelijker kunnen werken.

We kunnen bijvoorbeeld JSON-strings converteren naar een Kaart of maak een aangepaste klasse met toewijzingen.

Soms is het echter handig om onze JSON naar een generiek object te kunnen converteren. In deze tutorial zullen we zien hoe Gson kan ons een JsonObject van een Draad.

2. Maven Afhankelijkheid

Allereerst moeten we de gson afhankelijkheid in onze pom.xml:

 com.google.code.gson gson 2.8.5 

We kunnen de laatste versie van gson op Maven Central.

3. Met behulp van JsonParser

De eerste benadering die we zullen zien voor het converteren van een JSON Draad naar een JsonObject is een tweestapsproces dat gebruikmaakt van de JsonParser klasse.

In de eerste stap moeten we ons origineel ontleden Draad.

Gson biedt ons een parser met de naam JsonParser, die de opgegeven JSON parseert Draad in een ontleedboom van JsonElements:

public JsonElement parse (String json) genereert JsonSyntaxException

Zodra we onze hebben Draad ontleed in een JsonElement tree, gebruiken we de getAsJsonObject () methode, die het gewenste resultaat zal opleveren.

Laten we eens kijken hoe we onze finale halen JsonObject:

String json = "{\" naam \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject jsonObject = nieuwe JsonParser (). Parse (json) .getAsJsonObject (); Assert.assertTrue (jsonObject.isJsonObject ()); Assert.assertTrue (jsonObject.get ("naam"). GetAsString (). Is gelijk aan ("Baeldung")); Assert.assertTrue (jsonObject.get ("java"). GetAsBoolean () == true);

4. Met behulp van van Json

In onze tweede benadering zullen we zien hoe u een Gson instantie en gebruik de van Json methode. Deze methode deserialiseert de opgegeven JSON Draad in een object van de opgegeven klasse:

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

Laten we eens kijken hoe we deze methode kunnen gebruiken om onze JSON te parseren Draad, langs de JsonObject class als de tweede parameter:

String json = "{\" naam \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject geconverteerdeObject = nieuwe Gson (). FromJson (json, JsonObject.class); Assert.assertTrue (geconverteerdeObject.isJsonObject ()); Assert.assertTrue (geconverteerdeObject.get ("naam"). GetAsString (). Is gelijk aan ("Baeldung")); Assert.assertTrue (geconverteerdeObject.get ("java"). GetAsBoolean () == true);

5. Conclusie

In deze eenvoudige tutorial hebben we twee verschillende manieren geleerd om de Gson-bibliotheek te gebruiken om een JsonObject van een JSON-geformatteerd Draad in Java. Daarom moeten we degene gebruiken die beter past bij onze tussenliggende JSON-bewerkingen.

Zoals gewoonlijk is de broncode voor deze voorbeelden beschikbaar op GitHub.