JSON er et av de mest populære datautvekslingsformatene. Det er forenklet, menneskelig lesbar og veldig fleksibel. Det er et utmerket valg for APIer og mest dataoverføring. Enheten du har, bruker sannsynligvis JSON for å utføre en spesifikk oppgave.
I et slikt tilfelle er det viktig å lære å jobbe med JSON. I denne guiden lærer vi å jobbe.
Golang Marshal
Koding og avkoding av JSON -informasjon i Go er gitt av koding/JSON -pakken. Det er en del av standardbiblioteket; Derfor trenger du ikke å installere den.
Du må imidlertid importere den.
Econding/JSON -pakken koder for enhver datatype til en gyldig JSON -streng, som vi vil se i disse eksemplene.
Før du diskuterer hvordan du koder for GO -strukturer, la oss starte med grunnleggende datatyper.
JSON Marshal -funksjon
Følgende beskriver syntaks for marshalfunksjonen som definert i pakken.
func marskalk (v grensesnitt ) ([] byte, feil)Funksjonen tar hvilken som helst datatype som argument. Funksjonen returnerer en byte -skive, og det oppstår en feil under marskalprosessen.
Marshal int
Vi kan marsjere en heltalltype som vist i eksemplet nedenfor:
pakkehovedI eksemplet over begynner vi med å importere de nødvendige pakkene. Vi trenger koding/json, FMT og refleksjonspakken i vårt eksempel.
Vi bruker JSON.Marshal () -metode til marskalk og heltallverdi. Du vil merke at funksjonen returnerer en Unint8 (et 8-bits usignert heltall) eller byte. Vi må kaste den til en streng som vist i utgangen nedenfor:
$ GO RUN MARSHALL.gåDette returnerer en heltallstreng.
Marskalkstreng.
Vi kan marsjere en strengtype som vist i eksemplet nedenfor:
funcmarshal_str ()Hvis vi kjører ovennevnte kode, bør vi få strengen marshaled inn i en skive byte som:
Marshaled String: [34 76 105 110 117 120 104 105 110 116 34]Marshall Bool
Du kan også marskalk en boolsk type ved hjelp av marshalfunksjonen. Tenk på eksemplet nedenfor:
funcmarshal_bool ()Marshal Float
Marshal en flytende type som vist:
funcmarshal_float ()Marshal -skive
Eksemplet nedenfor illustrerer hvordan du kan marsjere en skive i Go:
funcmarshal_slice ()Marskalkstruktur
For å marsjere en struktur i Go, bør du vurdere eksemplet nedenfor:
funcmarshal_struct ()Eksempelfunksjonen ovenfor illustrerer hvordan man marskalk en struktur type i go.
Den resulterende utgangen er som vist:
"Full_name": "John Doe", "Age": 32, "pensjonert": False, "Lønn": 140000Ovennevnte representerer strukturen marskalket til en gyldig JSON -streng.
Golang Unmarshal
Unmarshal er det motsatte av marskalk. Det lar deg konvertere byte -data til den opprinnelige datastrukturen.
I GO blir Unmarshaling håndtert av JSON.Unmarshal () -metode.
Tenk på et eksempel JSON -streng som:
"Full_name": "John Doe", "Age": 32, "pensjonert": False, "Lønn": 140000La oss starte med å lage en struktur for å matche byte -koden etter å ha utført Unmarshal.
Skriv brukerstrukturNeste trinn er å opprette JSON -strengen til byte -kode. Når vi har byte -koden, kan vi unmarshal den til en struktur.
user_info_bytes: = [] byte (user_info)Når vi har byte -koden, kan vi unmarshall den til struct.
var ansattes brukerNår vi har strukturen, kan vi få tilgang til verdiene som:
fmt.Println (ansatt.Fullt navn)Ovennevnte kode skal returnere:
John DoeDen fulle kildekoden er som vist nedenfor:
func unmarshal_struct ()Konklusjon
Marshal og unmarshal representerer et viktig krav til datatransformasjon. Som programmerere er det viktig å gjøre oss kjent med hvordan vi skal utføre slike operasjoner. Denne opplæringen tjener det formålet med letthet.
Takk for at du leser og lykkelig koding!