Preveďte reťazec na JsonObject pomocou nástroja Gson

1. Prehľad

Pri práci s JSON v Jave pomocou knižnice Gson máme k dispozícii niekoľko možností na prevod surového JSON na iné triedy alebo dátové štruktúry, s ktorými môžeme ľahšie pracovať.

Napríklad môžeme previesť reťazce JSON na a Mapa alebo vytvorte vlastnú triedu s mapovaním.

Niekedy je však užitočné vedieť previesť náš JSON na generický objekt. V tomto návode uvidíme ako Gson môže nám dať JsonObject od a String.

2. Závislosť od Maven

Najskôr musíme zahrnúť gson závislosť v našom pom.xml:

 com.google.code.gson gson 2.8.5 

Nájdeme najnovšiu verziu servera gson na Maven Central.

3. Používanie JsonParser

Prvý prístup, ktorý uvidíme pri prevode JSON String do a JsonObject je dvojkrokový proces, ktorý využíva JsonParser trieda.

V prvom kroku musíme rozobrať náš originál String.

Gson nám poskytuje analyzátor s názvom JsonParser, ktorý analyzuje zadaný JSON String do parsovaného stromu JsonElements:

public JsonElement parse (String json) hodí JsonSyntaxException

Keď už máme svoje String analyzovaný v a JsonElement strom, použijeme getAsJsonObject () metóda, ktorá vráti požadovaný výsledok.

Pozrime sa, ako sa dostaneme do finále JsonObject:

Reťazec json = "{\" meno \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject jsonObject = nový JsonParser (). Parse (json) .getAsJsonObject (); Assert.assertTrue (jsonObject.isJsonObject ()); Assert.assertTrue (jsonObject.get ("name"). GetAsString (). Equals ("Baeldung")); Assert.assertTrue (jsonObject.get ("java"). GetAsBoolean () == true);

4. Používanie odJsona

V našom druhom prístupe uvidíme, ako vytvoriť Gson inštanciu a použite odJsona metóda. Táto metóda deserializuje zadaný súbor JSON String do objektu určenej triedy:

public T fromJson (String json, Class classOfT) hodí JsonSyntaxException

Pozrime sa, ako môžeme pomocou tejto metódy analyzovať náš JSON String, prechádzajúc okolo JsonObject trieda ako druhý parameter:

Reťazec json = "{\" meno \ ": \" 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. Záver

V tomto základnom výučbe sme sa naučili dva rôzne spôsoby použitia knižnice Gson na získanie hodnoty JsonObject z formátu JSON String v Jave. Preto by sme mali použiť ten, ktorý lepšie zapadá do našich prechodných operácií JSON.

Ako obvykle je zdrojový kód týchto príkladov k dispozícii na serveri GitHub.