std.json
std.json lar programmet ditt snakke JSON: parse gjør en JSON-tekst om til en ordbok du kan hente verdier fra trygt, og stringify går den andre veien.
std.json lar programmet ditt snakke JSON — formatet nesten alle web-API-er bruker for å utveksle data. parse gjør en JSON-tekst om til en ordbok du kan hente verdier fra, og stringify går den andre veien, fra ordbok til tekst du kan sende videre.
I stedet for å plukke ut felter for hånd, gir modulen deg trygge hent_*-funksjoner som henter en verdi på en nøkkel og gir en fornuftig standardverdi hvis nøkkelen mangler. Det betyr at et uventet svar ikke velter programmet — du får en tom tekst eller et null-tall i stedet for en krasj.
Når bruker du den
Bruk std.json når du snakker med web-API-er eller lagrer strukturert data som tekst. parse tar imot et svar og gir deg en ordbok; hent_*-funksjonene plukker ut verdiene trygt, med fornuftige standardverdier hvis en nøkkel mangler.
Slik kommer du i gang
bruk std.json som json
// kropp kan for eksempel være {"navn": "Ada", "alder": 36}
la data = json.parse(kropp)
la navn = json.hent_tekst(data, "navn") // "Ada"
la alder = json.hent_tall(data, "alder") // 36
// bygg JSON tilbake
la svar = json.stringify(data)parse gir deg en ordbok, og hent_* plukker ut verdiene trygt. Mangler en nøkkel, får du en tom tekst eller null i stedet for en feil.
Funksjonene
Modulen har to retninger og en gruppe hjelpere. parse og stringify konverterer mellom tekst og ordbok. hent_tekst, hent_tall og hent_bool plukker ut enkeltverdier trygt, og hent_array_ og array_til_ håndterer lister.
parse(innhold: tekst) -> ordbok_tekst— Tolker en JSON-tekst og gir en ordbok du kan hente verdier fra.stringify(data: ordbok_tekst) -> tekst— Gjør en ordbok om til en JSON-tekst med korrekt escaping.hent_tekst(data: ordbok_tekst, nøkkel: tekst) -> tekst— Henter en tekstverdi pånøkkel, eller tom tekst hvis den mangler.hent_tall(data: ordbok_tekst, nøkkel: tekst) -> heltall— Henter en tallverdi pånøkkel, eller 0 hvis den mangler.hent_bool(data: ordbok_tekst, nøkkel: tekst) -> bool— Henter en boolsk verdi pånøkkel.array_til_tekst_liste(data: ordbok_tekst) -> liste_tekst— Gjør et JSON-array om til enliste_tekst.array_til_tall_liste(data: ordbok_tekst) -> liste_heltall— Gjør et JSON-array om til enliste_heltall.hent_array_tekst(data: ordbok_tekst, nøkkel: tekst) -> liste_tekst— Henter et array av tekst direkte på en nøkkel.hent_array_tall(data: ordbok_tekst, nøkkel: tekst) -> liste_heltall— Henter et array av tall direkte på en nøkkel.
Godt å vite
hent_*-funksjonene gir en standardverdi ved manglende nøkkel, så et uventet svar velter ikke programmet.- Nøstede strukturer hentes ut trinn for trinn;
hent_array_tekstoghent_array_tallgir deg lister direkte. - Bygger du JSON som skal sendes ut, la
stringifyta seg av korrekt escaping i stedet for å sette sammen teksten selv.
std.json er én av modulene i standardbiblioteket. Alt følger med kjøretiden — ingen installasjon, ingen eksterne avhengigheter. Se også Dokumentasjon for språket og kjøretiden.
Les også
- std.tekststd.tekst er verktøykassen for tekst: søke og sjekke, dele og sette sammen, trimme blanktegn, endre mellom store og små bokstaver, og konvertere til og fra tall.
- std.filstd.fil er det enkleste laget mellom programmet ditt og filsystemet: sjekk om en fil finnes, les og skriv tekst, eller les og skriv rå bytes — med disk-kapabilitet.
- std.datostd.dato regner med kalenderdatoer som heltall — en ordinal som teller dager. Uten tidssone og klokkeslett slipper du feilene som ellers kommer av sommertid og soner.