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.


$config[zx-auto] not found$config[zx-overlay] not found