Konverter streng til JsonObject med Gson

1. Oversigt

Når vi arbejder med JSON i Java ved hjælp af Gson-biblioteket, har vi flere muligheder til at konvertere rå JSON til andre klasser eller datastrukturer, som vi lettere kan arbejde med.

For eksempel kan vi konvertere JSON-strenge til a Kort eller opret en brugerdefineret klasse med tilknytninger.

Nogle gange er det dog praktisk at kunne konvertere vores JSON til et generisk objekt. I denne vejledning ser vi hvordan Gson kan give os en JsonObject fra en Snor.

2. Maven-afhængighed

Først og fremmest skal vi medtage gson afhængighed i vores pom.xml:

 com.google.code.gson gson 2.8.5 

Vi kan finde den nyeste version af gson på Maven Central.

3. Brug JsonParser

Den første tilgang, vi ser for konvertering af en JSON Snor til en JsonObject er en totrins proces, der bruger JsonParser klasse.

I det første trin skal vi analysere vores original Snor.

Gson giver os en parser kaldet JsonParser, som analyserer den angivne JSON Snor i et parse-træ af JsonElements:

offentlig JsonElement-analyse (String json) kaster JsonSyntaxException

Når vi har vores Snor analyseret i en JsonElement træ, vi bruger getAsJsonObject () metode, som returnerer det ønskede resultat.

Lad os se, hvordan vi får vores finale JsonObject:

String json = "{\" name \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject jsonObject = ny JsonParser (). Parse (json) .getAsJsonObject (); Assert.assertTrue (jsonObject.isJsonObject ()); Assert.assertTrue (jsonObject.get ("navn"). GetAsString (). Er lig med ("Baeldung")); Assert.assertTrue (jsonObject.get ("java"). GetAsBoolean () == true);

4. Brug fraJson

I vores anden tilgang vil vi se, hvordan man opretter en Gson eksempel og brug fraJson metode. Denne metode deserialiserer den specificerede JSON Snor ind i et objekt af den angivne klasse:

offentlig T fraJson (String json, Class classOfT) kaster JsonSyntaxException

Lad os se, hvordan vi kan bruge denne metode til at analysere vores JSON Snor, passerer JsonObject klasse som den anden parameter:

String json = "{\" name \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject convertObject = ny Gson (). Fra Json (json, JsonObject.class); Assert.assertTrue (convertObject.isJsonObject ()); Assert.assertTrue (convertObject.get ("name"). GetAsString (). Er lig med ("Baeldung")); Assert.assertTrue (convertObject.get ("java"). GetAsBoolean () == true);

5. Konklusion

I denne grundlæggende tutorial har vi lært to forskellige måder at bruge Gson-biblioteket til at få en JsonObject fra en JSON-formateret Snor i Java. Derfor bør vi bruge den, der passer bedre til vores mellemliggende JSON-operationer.

Som normalt er kildekoden til disse eksempler tilgængelig på GitHub.