Pretvori niz u JsonObject pomoću Gsona

1. Pregled

Kada radimo s JSON-om u Javi koristeći Gson knjižnicu, na raspolaganju imamo nekoliko mogućnosti za pretvaranje sirovog JSON-a u druge klase ili strukture podataka s kojima možemo lakše raditi.

Na primjer, možemo pretvoriti JSON nizove u Karta ili izradite prilagođenu klasu s preslikavanjima.

No, ponekad je zgodno moći pretvoriti naš JSON u generički objekt. U ovom uputstvu vidjet ćemo kako Gson može nam dati a JsonObject od Niz.

2. Ovisnost Mavena

Prije svega, moramo uključiti gson ovisnost u našem pom.xml:

 com.google.code.gson gson 2.8.5 

Možemo pronaći najnoviju verziju gson na Maven Central.

3. Korištenje JsonParser

Prvi pristup koji ćemo vidjeti za pretvaranje JSON-a Niz do a JsonObject je postupak u dva koraka koji koristi JsonParser razred.

U prvom koraku moramo raščlaniti svoj izvornik Niz.

Gson nam nudi parser tzv JsonParser, koji raščlanjuje navedeni JSON Niz u stablo raščlanjivanja JsonElements:

javni JsonElement parse (String json) baca JsonSyntaxException

Jednom kad imamo svoje Niz raščlanjeno u a JsonElement drvo, koristit ćemo getAsJsonObject () metoda, koja će vratiti željeni rezultat.

Pogledajmo kako ćemo doći do našeg finala JsonObject:

Niz json = "{\" name \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject jsonObject = novi JsonParser (). Parse (json) .getAsJsonObject (); Assert.assertTrue (jsonObject.isJsonObject ()); Assert.assertTrue (jsonObject.get ("ime"). GetAsString (). Jednako ("Baeldung")); Assert.assertTrue (jsonObject.get ("java"). GetAsBoolean () == true);

4. Korištenje odJson

U našem drugom pristupu vidjet ćemo kako stvoriti Gson instancu i upotrijebite odJson metoda. Ova metoda deserializira navedeni JSON Niz u objekt navedene klase:

javni T fromJson (String json, Class classOfT) baca JsonSyntaxException

Pogledajmo kako možemo koristiti ovu metodu za raščlanjivanje našeg JSON-a Niz, prolazeći JsonObject klasa kao drugi parametar:

Niz json = "{\" name \ ": \" Baeldung \ ", \" java \ ": true}"; JsonObject convertObject = novi Gson (). FromJson (json, JsonObject.class); Assert.assertTrue (convertObject.isJsonObject ()); Assert.assertTrue (convertObject.get ("name"). GetAsString (). Jednako ("Baeldung")); Assert.assertTrue (convertObject.get ("java"). GetAsBoolean () == true);

5. Zaključak

U ovom osnovnom uputstvu naučili smo dva različita načina korištenja Gson knjižnice za dobivanje a JsonObject iz formata JSON Niz na Javi. Slijedom toga, trebali bismo koristiti onaj koji se bolje uklapa u naše srednje JSON operacije.

Kao i obično, izvorni kod za ove primjere dostupan je na GitHubu.