Gem data i en JSON-fil med Gson

1. Oversigt

Gson er et Java-bibliotek, der giver os mulighed for at konvertere Java-objekter til en JSON-repræsentation. Vi kan også bruge det omvendt til at konvertere en JSON-streng til et tilsvarende Java-objekt.

I denne hurtige vejledning finder vi ud af, hvordan man gemmer forskellige Java-datatyper som en JSON i en fil.

2. Maven-afhængigheder

Først og fremmest skal vi tilføje Gson-afhængigheden i pom.xml. Dette er tilgængeligt i Maven Central:

 com.google.code.gson gson 2.8.5 

3. Gemme data i en JSON-fil

Vi bruger toJson (Object src, Anvendelig forfatter) metode fra Gson klasse for at konvertere en Java-datatype til JSON og gemme den i en fil. Det Gson () konstruktør opretter en Gson objekt med standardkonfiguration:

Gson gson = ny Gson ();

Nu kan vi ringe tilJson() for at konvertere og gemme Java-objekter.

Lad os undersøge nogle eksempler med forskellige datatyper i Java.

3.1. Primitiver

At gemme primitive til en JSON-fil er ret ligetil ved hjælp af GSON:

gson.toJson (123.45, ny FileWriter (filePath));

Her, filePath angiver placeringen af ​​filen. Filoutputtet indeholder simpelthen den primitive værdi:

123.45

3.2. Brugerdefinerede objekter

På samme måde kan vi gemme objekter som JSON.

Først opretter vi en simpel Bruger klasse:

offentlig klasse bruger {privat int id; privat strengnavn; privat forbigående String-nationalitet; offentlig bruger (int id, strengnavn, streng nationalitet) {this.id = id; dette.navn = navn; dette. nationalitet = nationalitet; } offentlig bruger (int id, streng navn) {dette (id, navn, null); }}

Nu gemmer vi en Bruger objekt som en JSON:

Brugerbruger = ny bruger (1, "Tom Smith", "amerikansk"); gson.toJson (bruger, ny FileWriter (filePath));

Filoutputtet vil være:

{"id": 1, "name": "Tom"}

Hvis et felt er markeret forbigående, det ignoreres som standard og er ikke inkluderet i JSON-serialisering eller deserialisering. Som et resultat af dette nationalitet felt er ikke til stede i JSON-output.

Også som standard udelader Gson null-felter under serialisering. Så hvis vi overvejer dette eksempel:

gson.toJson (ny bruger (1, null, "Ukendt"), ny FileWriter (filePath));

filoutputtet vil være:

{"id": 1}

Vi får se, hvordan man senere medtager nulfelter i serialisering.

3.3. Samlinger

Vi kan gemme en samling objekter på en lignende måde:

Bruger [] brugere = ny bruger [] {ny bruger (1, "Mike"), ny bruger (2, "Tom")}; gson.toJson (brugere, ny FileWriter (filePath));

I dette tilfælde vil filoutputtet være en matrix af Bruger genstande:

[{"id": 1, "name": "Mike"}, {"id": 2, "name": "Tom"}]

4. Brug GsonBuilder

For at finjustere standardindstillingerne for Gson-konfiguration kan vi bruge GsonBuilder klasse.

Denne klasse følger byggermønsteret, og den bruges typisk ved først at påberåbe sig forskellige konfigurationsmetoder for at indstille de ønskede muligheder og til sidst kalde skab() metode:

Gson gson = ny GsonBuilder () .setPrettyPrinting () .create ();

Her indstiller vi den smukke udskriftsindstilling, der som standard er indstillet til falsk. På samme måde kan vi kalde for at inkludere nulværdier i serialisering serializeNulls (). De tilgængelige indstillinger er angivet her.

5. Konklusion

I denne hurtige artikel fik vi en forståelse af, hvordan forskellige Java-datatyper kan serieiseres til en JSON-fil. For at udforske forskellige artikler om JSON skal du kigge på vores andre tutorials om dette emne.

Som altid er kodestykkerne tilgængelige i dette GitHub-lager.


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