Spremite podatke u JSON datoteku pomoću Gsona
1. Pregled
Gson je Java knjižnica koja nam omogućuje pretvaranje Java objekata u JSON predstavu. Možemo ga koristiti i obrnuto, za pretvaranje JSON niza u ekvivalentan Java objekt.
U ovom brzom vodiču saznat ćemo kako razne datoteke Java vrste podataka spremiti kao JSON u datoteku.
2. Ovisnosti Mavena
Prije svega, moramo dodati ovisnost Gson u pom.xml. Ovo je dostupno u Maven Central:
com.google.code.gson gson 2.8.5
3. Spremanje podataka u JSON datoteku
Koristit ćemo toJson (objekt src, pisac koji se može prijaviti) metoda iz Gson klase za pretvorbu Java vrste podataka u JSON i pohranjivanje u datoteku. The Gson () konstruktor stvara a Gson objekt sa zadanom konfiguracijom:
Gson gson = novi Gson ();
Sad možemo nazvati toJson() za pretvaranje i spremanje Java objekata.
Istražimo neke primjere s različitim vrstama podataka u Javi.
3.1. Primitivci
Spremanje primitiva u JSON datoteku prilično je jednostavno pomoću GSON-a:
gson.toJson (123.45, novi FileWriter (filePath));
Ovdje, filePath označava mjesto datoteke. Izlaz datoteke jednostavno će sadržavati primitivnu vrijednost:
123.45
3.2. Prilagođeni objekti
Isto tako, objekte možemo pohraniti kao JSON.
Prvo ćemo stvoriti jednostavan Korisnik razred:
korisnik javne klase {private int id; privatni naziv niza; privatna prolazna niska nacionalnost; javni korisnik (int id, naziv niza, nacionalnost niza) {this.id = id; this.name = ime; this.narodnost = nacionalnost; } javni korisnik (int id, naziv niza) {this (id, name, null); }}
Sad ćemo pohraniti a Korisnik objekt kao JSON:
Korisnik korisnik = novi korisnik (1, "Tom Smith", "Amerikanac"); gson.toJson (korisnik, novi FileWriter (filePath));
Izlaz datoteke bit će:
{"id": 1, "name": "Tom"}
Ako je polje označeno prolazan, po defaultu se ignorira i nije uključen u JSON serializaciju ili deserializaciju. Kao rezultat, nacionalnost polje nije prisutno u JSON izlazu.
Također prema zadanim postavkama, Gson tijekom serializacije izostavlja nulta polja. Pa ako uzmemo u obzir ovaj primjer:
gson.toJson (novi korisnik (1, null, "Nepoznat"), novi FileWriter (filePath));
izlaz datoteke bit će:
{"id": 1}
Kasnije ćemo vidjeti kako uključiti nulta polja u serializaciju.
3.3. Zbirke
Na sličan način možemo pohraniti kolekciju predmeta:
Korisnik [] korisnici = novi korisnik [] {novi korisnik (1, "Mike"), novi korisnik (2, "Tom")}; gson.toJson (korisnici, novi FileWriter (filePath));
U ovom će slučaju izlaz datoteke biti niz Korisnik objekti:
[{"id": 1, "name": "Mike"}, {"id": 2, "name": "Tom"}]
4. Korištenje GsonBuilder
Da bismo podesili zadane postavke Gson konfiguracije, možemo koristiti GsonBuilder razred.
Ova klasa slijedi obrazac graditelja i obično se koristi tako što prvo poziva različite metode konfiguracije za postavljanje željenih opcija i na kraju poziva stvoriti() metoda:
Gson gson = novi GsonBuilder () .setPrettyPrinting () .create ();
Ovdje postavljamo lijepu opciju ispisa koja je prema zadanim postavkama postavljena na lažno. Slično tome, da bismo uključili null vrijednosti u serializaciju, možemo nazvati serializeNulls (). Dostupne opcije navedene su ovdje.
5. Zaključak
U ovom kratkom članku stekli smo razumijevanje kako serializirati različite tipove podataka Java u JSON datoteku. Da biste istražili razne članke o JSON-u, pogledajte naše ostale vodiče o ovoj temi.
Kao i uvijek, isječci koda dostupni su u ovom GitHub spremištu.