Gson-Komme I Gang Med Java-Json Serialisering & Deserialisering

etter publisering over 50 Ettermontering blogginnlegg vi har samlet nok tilbakemeldinger at mange utviklere ville elske en omfattende introduksjon Til Googles Gson. Gson er et veldig kraftig bibliotek for å kartlegge datastrukturer representert SOM JSON Til Java-objekter. Selvfølgelig støtter den også omvendt og kan skape en passende JSON-representasjon av Java-objekter.

hvis du er interessert i hvor denne serien går, sjekk ut vår serie disposisjon:

Oversikt Over Gson-Serien

>

Gson Dependency

denne veiledningen vil være praktisk og starte med litt serialisering om et minutt. Siden mange av våre lesere Er Android-utviklere, skreddersyr vi Det for deg, Men Gson kan brukes i Alle Java-miljøer. Før vi kan komme i gang, må Vi trekke Inn Gson-biblioteket til prosjektet vårt. I skrivende stund er den nyeste versjonen 2.8.5. Hvis Du bruker Gradle, legger du til følgende linje:

implementation 'com.google.code.gson:gson:2.8.5' 

Hvis Du bruker Maven, kan du legge til følgende avhengighet:

<dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> <scope>compile</scope> </dependency></dependencies> 

for de fattige gutta som ikke bruker dependency management system, kan du laste ned krukken på det offisielle GitHub-depotet.

Grunnleggende Om Java-JSON Serialisering

så la oss gjøre litt serialisering! Serialisering i Sammenheng Med Gson betyr å kartlegge Et Java-objekt til SIN json-representasjon. I de neste opplæringene vil dataene våre bli mer komplekse, men for nå begynner vi med et veldig vanlig UserSimple objekt:

public class UserSimple { String name; String email; int age; boolean isDeveloper;}

brukerobjektet har fire egenskaper:

  • brukerens name er Et Strengobjekt
  • brukerens email er også Et Strengobjekt
  • brukerens age er et heltall, noe som betyr at alderen er lagret i år (for eksempel 26 og ikke nøyaktig fødselsdag!)
  • endelig et boolsk flagg isDeveloper

Vår Android-eller Java-applikasjon må konvertere et UserSimple – objekt til SIN json-representasjon. Forutsatt at vi holder medlemsnavnene de samme, forventer vi en SLIK JSON For Norman, forfatteren av dette blogginnlegget:

{ "name": "Norman", "email": "[email protected]", "age": 26, "isDeveloper": true}

Så la oss se hvordan vi kan gjøre konverteringen Med Gson. Først av alt må vi opprette Et Java-objekt For Norman:

UserSimple userObject = new UserSimple( "Norman", "[email protected]", 26, true);

for å gjøre serialiseringen trenger vi et Gson objekt, som håndterer konverteringen. Vi kan bare bruke konstruktøren:

Gson gson = new Gson(); 

Deretter må vi ringe funksjonen toJson() og passere UserSimple – objektet:

String userJson = gson.toJson(userObject); 

userJson – objektet inneholder følgende verdi:

{ "age": 26, "email": "[email protected]", "isDeveloper": true, "name": "Norman"}

Gson endret rekkefølgen på egenskapene (til alfabetisk), men innholdet er identisk! Legg merke til Hvordan Gson respekterte typene. Strengverdier ble pakket inn i "", mens heltallsverdier ikke hadde noen innpakning. Vi trengte ikke å rote rundt med JSON objekter eller kopiere enkeltmedlemmer. En enkelt samtale Til Gson var nok til å kartlegge hele objektet. Dette er svært nyttig når vi jobber med komplekse datastrukturer. Men før vi går for dypt, la oss teste den andre retningen. Kan Gson lage Et Java-objekt fra OVENNEVNTE JSON?

Grunnleggende OM JSON-Java Deserialisering

Først av Alt må vi lage En Streng, som inneholder OVENNEVNTE JSON:

String userJson = "{'age':26,'email':'[email protected]','isDeveloper':true,'name':'Norman'}"; 

Vi endret " til ' for å unngå tonn \" å rømme. Likevel fungerer det uansett. Det neste trinnet er, som du sikkert har gjettet, å lage En gson-forekomst:

Gson gson = new Gson(); 

Til slutt må vi kartlegge fra ET JSON Til Et Java-objekt med fromJson():

UserSimple userObject = gson.fromJson(userJson, UserSimple.class); 

Legg merke til hvordan vi må passere det forventede Java-objektet som den andre parameteren. Ellers Vet Gson ikke hva DET skal kartlegge JSON til. Det er ikke en tryllekunstner!

hvis vi legger til en debugger og sjekker den resulterende userObject, viser Det oss At Gson har kartlagt alle egenskapene riktig:

Brukerobjekt

i dette komme i gang innlegget har du sett grunnleggende bruk Av Gson. Vi har vist hvor enkelt DET er å kartlegge FRA OG TIL json-data. Vi er sikker på at du har en haug med spørsmål i øyeblikket:

  • Trenger Java-modellklassene en konstruktør/getter / setter?
  • Kan Java-modellfeltene være private?
  • hvordan håndteres nullverdier?
  • Hva om Java-klassen har forskjellig medlemsnavn enn JSON?
  • slik (de)serialiserer matriser/lister over objekter
  • slik (de)serialiserer nestede objekter
  • beholder Gson en definert standardverdi for en klasseegenskap under kjøring .fromJson(), og det er ingen verdi for den egenskapen tilgjengelig I JSON?

Ingen bekymringer, vi kommer til dem alle i de kommende ukene. Hvis du har et bestemt emne i tankene, gi oss beskjed i kommentarene eller på twitter @futurestud_io.

Gjør det rock & nyt koding!

Ikke Ekspert Ennå? Få Vår Gson Bok!

Gson Book

Mapping JSON Til Java objekter (og vice versa) er fra 90-tallet. Gson er den moderne løsningen for å kartlegge Mellom Java og JSON automatisk med minimal innsats.

Du trenger bare å vite hvordan! Lær alle detaljer Om Gsons evner, konfigurasjon & tilpasning i vår bok.

vår bok inneholder alt Du trenger å vite Om Gson. Verdsetter din tid og spare deg selv fra endeløse timer Med Google-søk for å raskt løse dine problemer. Invester i kunnskapen din på forhånd og i en ren løsning. Vi gjør Deg Til gson-ekspert på teamet ditt.

Inkluderer en arbeidsbok!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

More: