Lagre data i en JSON-fil med Gson
1. Oversikt
Gson er et Java-bibliotek som lar oss konvertere Java-objekter til en JSON-representasjon. Vi kan også bruke den omvendt, for å konvertere en JSON-streng til et tilsvarende Java-objekt.
I denne raske opplæringen vil vi finne ut hvordan du lagrer forskjellige Java-datatyper som en JSON i en fil.
2. Maven-avhengigheter
Først og fremst må vi legge til Gson-avhengigheten i pom.xml. Dette er tilgjengelig i Maven Central:
com.google.code.gson gson 2.8.5
3. Lagre data i en JSON-fil
Vi bruker toJson (Object src, Forfatter som kan brukes) metoden fra Gson klasse for å konvertere en Java-datatype til JSON og lagre den i en fil. De Gson () konstruktør oppretter en Gson objekt med standardkonfigurasjon:
Gson gson = ny Gson ();
Nå kan vi ringe toJson() for å konvertere og lagre Java-objekter.
La oss utforske noen eksempler med forskjellige datatyper i Java.
3.1. Primitiver
Å lagre primitiver til en JSON-fil er ganske grei å bruke GSON:
gson.toJson (123.45, ny FileWriter (filePath));
Her, filePath angir plasseringen av filen. Filutgangen vil ganske enkelt inneholde den primitive verdien:
123.45
3.2. Egendefinerte objekter
På samme måte kan vi lagre objekter som JSON.
Først skal vi lage en enkel Bruker klasse:
offentlig klasse bruker {privat int id; privat strengnavn; privat forbigående String nasjonalitet; offentlig bruker (int id, strengnavn, streng nasjonalitet) {this.id = id; this.name = navn; dette. nasjonalitet = nasjonalitet; } offentlig bruker (int id, strengnavn) {this (id, name, null); }}
Nå lagrer vi en Bruker objekt som en JSON:
Brukerbruker = ny bruker (1, "Tom Smith", "Amerikansk"); gson.toJson (bruker, ny FileWriter (filePath));
Filutgangen vil være:
{"id": 1, "name": "Tom"}
Hvis et felt er merket flyktig, det ignoreres som standard og er ikke inkludert i JSON-serialisering eller deserialisering. Som et resultat ble den nasjonalitet feltet er ikke tilstede i JSON-utgangen.
Også som standard utelater Gson nullfelt under serialisering. Så hvis vi vurderer dette eksemplet:
gson.toJson (ny bruker (1, null, "Ukjent"), ny FileWriter (filePath));
filutgangen vil være:
{"id": 1}
Vi får se hvordan du inkluderer nullfelt i serialisering senere.
3.3. Samlinger
Vi kan lagre en samling objekter på en lignende måte:
Bruker [] brukere = ny bruker [] {ny bruker (1, "Mike"), ny bruker (2, "Tom")}; gson.toJson (brukere, ny FileWriter (filePath));
I dette tilfellet vil filutdataene være en rekke Bruker gjenstander:
[{"id": 1, "name": "Mike"}, {"id": 2, "name": "Tom"}]
4. Bruke GsonBuilder
For å tilpasse standard Gson-konfigurasjonsinnstillingene, kan vi bruke GsonBuilder klasse.
Denne klassen følger byggmønsteret, og den brukes vanligvis ved først å påkalle forskjellige konfigurasjonsmetoder for å angi ønskede alternativer, og til slutt ringe skape() metode:
Gson gson = ny GsonBuilder () .setPrettyPrinting () .create ();
Her setter vi det vakre utskriftsalternativet som er standard satt til falsk. På samme måte kan vi ringe for å inkludere nullverdier i serialisering serializeNulls (). De tilgjengelige alternativene er oppført her.
5. Konklusjon
I denne raske artikkelen fikk vi forståelse for hvordan vi kan serieisere forskjellige Java-datatyper til en JSON-fil. For å utforske ulike artikler om JSON, ta en titt på de andre veiledningene våre om dette emnet.
Som alltid er kodebitene tilgjengelige i dette GitHub-depotet.