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.