Hjem » Siste artikler » JSON for webutviklere: forstå formatet som binder frontend og backend sammen

JSON for webutviklere: forstå formatet som binder frontend og backend sammen

Hovedillustrasjon
Hovedillustrasjon. Foto: Саша Алалыкин / Pexels.

JSON dukker opp overalt i moderne webutvikling: i API-er, konfigurasjon, lagring i nettleseren og logging. Likevel er det mange som bare «får det til å funke» uten helt å forstå formatet.

I denne artikkelen får du en praktisk, jordnær gjennomgang av hva JSON er, hvordan det faktisk ser ut, vanlige feil som skaper bugs, og konkrete tips til hvordan du jobber tryggere og ryddigere med JSON i både frontend og backend.

Hva er JSON egentlig, og hvorfor brukes det så mye?

JSON står for JavaScript Object Notation. Det er et tekstformat for å representere data på en strukturert måte, slik at forskjellige systemer kan sende og motta informasjon uten å være skrevet i samme språk.

Grunnen til at JSON er så utbredt er at det er lett å lese for mennesker, relativt kompakt, og støttet i praksis av alle moderne programmeringsspråk. I webutvikling er det spesielt nyttig fordi nettlesere og JavaScript har innebygget støtte for å lese og skrive JSON.

Grunnstrukturen i JSON: objekter og lister

JSON har noen få grunnleggende byggesteiner. Forstå disse, og du kan lese nesten all JSON du møter:

  • Objekt: omsluttes av krøllparenteser{ }og består av nøkkel-verdi-par
  • Liste (array): omsluttes av hakeparenteser[ ]og inneholder en rekke verdier
  • Verdier: kan være tekst (string), tall, boolsk (true/false), null, objekt eller liste

Et eksempel på et enkelt JSON-objekt:

{ “navn”: “Maria”, “alder”: 29, “aktiv”: true }

Og en liste av objekter:

[ { “id”: 1, “tittel”: “Artikkel A” }, { “id”: 2, “tittel”: “Artikkel B” } ]

Streng JSON vs. «vanlig» JavaScript-objekt

Mange blander JSON og JavaScript-objekter, fordi de ser nesten like ut. Forskjellen er viktig:

  • IJSONmå alle nøkler være i doble anførselstegn, for eksempel“navn”
  • Strenger må alltid hadobleanførselstegn, ikke enkle
  • JSON tillaterikkefunksjoner, kommentarer eller udefinerte verdier

Gyldig JavaScript-objekt er derfor ikke alltid gyldig JSON. Dette blir spesielt synlig når du kopierer objekter fra JavaScript-kode inn i API-verktøy, config-filer eller JSON-validatorer.

Typiske JSON-feil som skaper trøbbel

Noen feil går igjen når JSON ikke vil parse. Her er noen av de vanligste, som det lønner seg å kjenne igjen:

  • Ekstra komma: for eksempel etter siste element i en liste eller siste nøkkel i et objekt
  • Manglende anførselstegnrundt nøkler eller strenger
  • Enkle anførselstegni stedet for doble, for eksempel‘tekst’i stedet for“tekst”
  • Kommentareri JSON-filer, som ikke er lovlig JSON selv om noen verktøy støtter det

Når du feilsøker, er det ofte nyttig å lime JSON-dataene inn i et verktøy som kan validere formatet og peke på hvor feilene ligger. Velg helst et verktøy du stoler på og som ikke sender sensitive data ut av miljøet ditt.

JSON i nettleseren: parse, stringify og lagring

I JavaScript har du to sentrale funksjoner for å jobbe med JSON:

  • JSON.parse()gjør tekst om til et JavaScript-objekt
  • JSON.stringify()gjør et JavaScript-objekt om til tekst i JSON-format

For eksempel når du henter data fra et API, får du ofte tekst som du må parse til et objekt for å jobbe videre med det. Når du lagrer noe ilocalStorage, må du ofte gjøre det motsatte og konvertere objektet til JSON-streng.

Husk å håndtere feil når du parser, spesielt hvis dataene kommer fra eksterne kilder du ikke kontrollerer fullt ut. En ødelagt JSON-streng kan ellers krasje hele funksjonaliteten.

JSON i backend: API-design og datakontrakter

Tematisk illustrasjon
Tematisk illustrasjon. Foto: Rashed Paykary / Pexels.

I backend er JSON det vanligste formatet for REST- og GraphQL-API-er. Her blir JSON en del av kontrakten mellom klient og server: hva som sendes, hvilke felter som finnes, og hvilke typer verdier de skal ha.

Noen enkle prinsipper for mer forutsigbar JSON i API-er:

  • Vær konsekvent i navngiving, for eksempelsnake_caseellercamelCase, og bland det ikke
  • Returner alltid samme struktur for samme endepunkt, også ved feil så langt det lar seg gjøre
  • Unngå plutselig å endre type på felt, som atidnoen ganger er tall og andre ganger tekst

Hvis flere team eller eksterne integrasjoner er involvert, kan det være nyttig å dokumentere JSON-strukturen tydelig, for eksempel med OpenAPI-spesifikasjon eller tilsvarende verktøy.

Validering og dokumentasjon av JSON-strukturer

Når datamengden og antallet felter vokser, blir det fort uoversiktlig hva JSON-en egentlig skal inneholde. Her kan strukturell validering være en stor hjelp.

Flere miljøer støtterJSON Schema, som lar deg beskrive hva et gyldig JSON-objekt skal ha av felter, typer og eventuelle begrensninger. Dette kan brukes både i utvikling, testing og kjøring for å fange opp uventede data tidlig.

Selv uten formelle schema-verktøy er det lurt å skrive eksplisitt i dokumentasjon hvilke felter som er påkrevd, hvilke som er valgfrie, og hvilke standardverdier som gjelder hvis noe mangler.

Praktiske tips for trygg og vedlikeholdbar JSON-bruk

Noen konkrete vaner kan gjøre arbeidsdagen med JSON mye enklere:

  • Formatér JSON med innrykk når du utvikler, så det er lett å lese
  • Bruk validatorer før du sjekker inn JSON-filer i versjonskontroll
  • Unngå å stole blindt påanyeller løse typer, forsøk å beskrive strukturen tydelig
  • Logg gjerne deler av JSON-responsen ved feilsøking, men pass på persondata og annen sensitiv informasjon

Hvis du hele tiden må skrive den samme JSON-strukturen på nytt, kan det være et tegn på at du bør lage en funksjon, type eller schema som samler kunnskapen ett sted. Det gir mindre rom for små, men plagsomme avvik.

Når bør du ikke velge JSON?

JSON passer ikke til alt. Store binære filer, som bilder og video, egner seg dårlig i JSON og bør vanligvis sendes som egne filer eller via andre mekanismer.

For svært komplekse dokumentstrukturer eller der du trenger sterke typer, kan andre formater og protokoller være mer aktuelle. Likevel er JSON ofte et godt førstevalg for kommunikasjon mellom frontend og backend i vanlige webapplikasjoner, nettopp fordi det er enkelt, utbredt og godt støttet.

Oppsummert

JSON er limet mellom mange deler av moderne webutvikling. Når du forstår formatet ordentlig, blir det enklere å feilsøke API-feil, strukturere data for frontend, dokumentere kontrakter og unngå de små, irriterende bugene som skyldes et ekstra komma eller feil type.

Ta deg tid til å gjøre JSON tydelig, konsekvent og godt dokumentert i prosjektene dine. Det gir mer stabile løsninger og mindre frustrasjon både for deg selv og alle som skal integrere mot det du lager.

0 kommentarer