Konverter streng til JsonObject med Gson

1. Oversikt

Når vi jobber med JSON i Java ved hjelp av Gson-biblioteket, har vi flere muligheter til å konvertere rå JSON til andre klasser eller datastrukturer som vi lettere kan jobbe med.

For eksempel kan vi konvertere JSON-strenger til a Kart eller opprett en tilpasset klasse med kartlegginger.

Noen ganger er det imidlertid nyttig å kunne konvertere JSON til et generisk objekt. I denne opplæringen får vi se hvordan Gson kan gi oss en JsonObject fra en String.

2. Maven avhengighet

Først av alt må vi inkludere gson avhengighet i vår pom.xml:

 com.google.code.gson gson 2.8.5 

Vi finner den nyeste versjonen av gson på Maven Central.

3. Bruke JsonParser

Den første tilnærmingen vi ser for konvertering av en JSON String til en JsonObject er en totrinnsprosess som bruker JsonParser klasse.

I det første trinnet må vi analysere originalen String.

Gson gir oss en parser som heter JsonParser, som analyserer den angitte JSON String inn i et parse-tre av JsonElements:

offentlig JsonElement-analyse (String json) kaster JsonSyntaxException

Når vi har fått vår String analysert i en JsonElement treet, bruker vi getAsJsonObject () metode, som vil returnere ønsket resultat.

La oss se hvordan vi får finalen JsonObject:

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

4. Bruke fraJson

I vår andre tilnærming vil vi se hvordan du lager en Gson forekomst og bruk fraJson metode. Denne metoden deserialiserer den spesifiserte JSON String til et objekt av den angitte klassen:

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

La oss se hvordan vi kan bruke denne metoden til å analysere JSON String, passerer JsonObject klasse som andre 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 (). Equals ("Baeldung")); Assert.assertTrue (convertObject.get ("java"). GetAsBoolean () == true);

5. Konklusjon

I denne grunnleggende opplæringen har vi lært to forskjellige måter å bruke Gson-biblioteket for å få en JsonObject fra en JSON-formatert String i Java. Derfor bør vi bruke den som passer bedre med våre mellomliggende JSON-operasjoner.

Som vanlig er kildekoden for disse eksemplene tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found