Hva er JSON? En enkel guide med eksempler
JSON (JavaScript Object Notation) er et enkelt tekstformat for å skrive ned strukturerte data — ting som en kunde, en bestilling eller en liste med produkter — som navn parret med verdier. Det er lett for mennesker å lese og lett for programmer å produsere og tolke. Når apper og tjenester utveksler data over nettet, er JSON långt det vanligste formatet.
Hvorfor JSON betyr noe når du bygger med AI
Du kommer til å møte JSON hele tiden, selv om du aldri skriver kode:
- API-er. Når skjermbildene i appen din henter data fra backend, eller backend-en din kaller en betalings-, e-post- eller AI-tjeneste, reiser dataene vanligvis som JSON. Se hva et API er.
- Innstillingsfiler. Mange prosjektkonfigurasjonsfiler er JSON — for eksempel
package.json, som lister avhengighetene i et JavaScript-prosjekt. - Databaser. Postgres kan lagre JSON i en kolonne (typen
jsonb) for data som ikke passer pent inn i rader og kolonner. Se hva Postgres er. - AI-output. Når du vil at en AI-modell skal returnere noe et program kan bruke — en liste med tagger, uthentede fakturafelt — ber du vanligvis om JSON.
- Feilmeldinger og logger. Mange feil kommer som JSON, og å lese dem er ofte den raskeste måten å finne ut hva som gikk galt.
Å kunne lese JSON lar deg sjekke hva appen faktisk mottok, oppdage et manglende felt og beskrive problemer presist til AI-appbyggeren din.
En hverdagslig sammenligning
Tenk deg et papirskjema: Navn: ____, Telefon: ____, Nyhetsbrev: ☐ ja ☐ nei. Hver utfylling er en etikett med en verdi ved siden av. JSON er det skjemaet skrevet som tekst, i et strengt oppsett en datamaskin kan lese uten å gjette. Og som skjemaer kan JSON ha seksjoner inni seksjoner (en adresseblokk med gate, by og postnummer) og lister (flere telefonnumre).
Hvordan JSON ser ut
Her er en enkelt booking i JSON:
{
"id": 5001,
"customer": "Lena Park",
"service": "Haircut",
"startsAt": "2026-10-03T14:00:00Z",
"price": 35.5,
"paid": false,
"notes": null,
"extras": ["beard trim", "hot towel"],
"contact": {
"email": "lena@example.com",
"phone": "+44 20 7946 0000"
}
}
Slik leser du den:
- Krøllparenteser
{ }omslutter et objekt — et sett med navn/verdi-par. - Hvert par er
"navn": verdi, atskilt med komma. - Hakeparenteser
[ ]omslutter en array — en ordnet liste. - Objekter og arrays kan ligge inni hverandre, slik
contactogextrasgjør.
De seks typene verdi
JSON har bare seks typer verdi. Den lille listen er en stor del av grunnen til at det fungerer overalt.
| Type | Eksempel | Merknader |
|---|---|---|
| Streng (tekst) | "Lena Park" | Alltid doble anførselstegn |
| Tall | 35.5, -2, 1e6 | Ingen anførselstegn; ingen valutasymboler |
| Boolsk | true, false | Små bokstaver, ingen anførselstegn |
| Null | null | «Ingen verdi» |
| Objekt | { "city": "Leeds" } | Navngitte verdier |
| Array | [1, 2, 3] | Ordnet liste; elementene kan være av hvilken som helst type |
Det finnes ingen datotype. Datoer skrives som strenger, vanligvis i ISO 8601-formatet vist over (2026-10-03T14:00:00Z, der Z betyr UTC). Å bli enige om det formatet unngår en hel kategori tidssonefeil.
De strenge reglene (der feilene kommer fra)
JSON er mindre tilgivende enn det ser ut. Dette er alt ugyldig:
{ name: "Lena" } ← nøkkel uten doble anførselstegn
{ 'name': 'Lena' } ← enkle anførselstegn
{ "a": 1, "b": 2, } ← komma etter siste element
{ "a": 1 "b": 2 } ← manglende komma
{ "a": 1 // kommentar } ← kommentarer er ikke tillatt
De fleste «Unexpected token»-feilene du ser er en av disse. En JSON-validator eller formaterer viser deg den nøyaktige linjen.
Et konkret eksempel: JSON gjennom en app
En kunde booker en frisørtime i en salongapp. Her dukker JSON opp:
- Bookingskjemaet sender dette til appens backend:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- Backend-en lagrer bookingen i databasen og svarer med statuskode
201 Createdog:
{ "id": 5001, "status": "confirmed" }
- Hvis tidspunktet allerede var tatt, kan den i stedet svare med statuskode
409 Conflictog:
{ "error": "slot_taken", "message": "Det tidspunktet ble nettopp booket. Velg et annet." }
Siden leser status eller error og viser riktig melding. Hvis siden i stedet viste en tom skjerm, ville det å åpne nettleserens utviklerverktøy (fanen Network) vise deg denne JSON-en — ofte det raskeste hintet om hva som gikk galt.
Viktige begreper
| Begrep | Betydning |
|---|---|
| Nøkkel | Navnet i et navn/verdi-par, som "email". |
| Parse | Gjøre JSON-tekst om til data et program kan bruke. |
| Serialisere / stringify | Gjøre data om til JSON-tekst for å sende eller lagre dem. |
| Payload | Dataene som sendes i en forespørsel eller respons. |
| Skjema (schema) | En beskrivelse av formen data skal ha — hvilke felt, hvilke typer. JSON Schema er en standard måte å skrive en på. |
| JSONB | Postgres sin binære JSON-kolonnetype, som kan indekseres og spørres. |
| NDJSON / JSON Lines | Ett JSON-objekt per linje, vanlig for logger og strømming. |
Vanlige misforståelser
- «JSON er JavaScript.» Det kom fra JavaScripts syntaks, men det er uavhengig av språk; Python, Java, C#, Go og resten leser det alle.
- «Tall i anførselstegn er greit.»
"35"er en streng, ikke et tall. Å blande dem skaper feil som at"35" + "5"blir"355". Penger lagres ofte best som hele øre (3550) for å unngå avrundingsproblemer. - «JSON er trygt fordi det bare er data.» JSON kan inneholde alt, også hemmeligheter. Ikke legg API-nøkler i JSON som sendes til nettleseren.
- «Legg alt i en JSON-kolonne.» Praktisk for fleksible tillegg, men data du søker, filtrerer eller kobler sammen på, hører vanligvis hjemme i egne kolonner.
- «AI-en returnerer alltid gyldig JSON.» Modeller kan legge til ekstra tekst eller bryte formatet. Mange leverandører tilbyr en modus for strukturert output; koden din bør likevel sjekke det som kommer tilbake.
Hva du bør be AI-appbyggeren om
- «Vis meg et eksempel på JSON-en dette endepunktet returnerer.»
- «Returner feil som JSON med en
error-kode og en lesbarmessage.» - «Lagre datoer som ISO 8601-strenger i UTC, og konverter til lokal tid først på skjermen.»
- «Lagre priser som heltall i øre.»
- «Valider innkommende JSON på serveren, og avvis forespørsler med manglende eller feiltypede felt.»
- «Når du kaller AI-modellen, be om JSON i denne nøyaktige formen og sjekk det før du bruker det.»
JSON i Mythex
Du trenger ikke skrive JSON for hånd i Mythex — du beskriver hva du vil ha, og agenten skriver koden som sender og leser den. Det hjelper likevel å kjenne igjen formatet: når noe går i stykker, gir det å lime JSON-feilen inn i chatten agenten et presist hint. Dokumentasjonens oppskrift for REST API-backend ber om «tydelige JSON-feil» fra starten, og oppskriften for å integrere ethvert API dekker kall til tjenester utenfor. For hele bildet, se REST vs GraphQL og hvordan feilsøke en AI-bygget app.
Spørsmål
Hva er JSON enkelt forklart?
JSON (JavaScript Object Notation) er et tekstformat for å skrive ned strukturerte data som navn og verdier, for eksempel "name": "Lena". Nesten alle web-API-er bruker det til å sende data frem og tilbake, og mange apper bruker det til innstillinger og lagrede data.
Er JSON et programmeringsspråk?
Nei. JSON er et dataformat, ikke et språk. Det kan ikke gjøre noe på egen hånd — det beskriver bare data. Selv om det kom fra JavaScript, kan praktisk talt alle programmeringsspråk lese og skrive det.
Hva er forskjellen mellom JSON og et JavaScript-objekt?
De ser like ut, men JSON er strengere. I JSON må alle nøkler stå i doble anførselstegn, strenger bruker doble anførselstegn, det finnes ingen kommentarer, ingen komma etter siste element, og verdiene er begrenset til strenger, tall, true, false, null, objekter og arrays.
Hvorfor sier JSON-en min at den er ugyldig?
Vanlige årsaker er et komma etter siste element, enkle anførselstegn i stedet for doble, et manglende komma mellom elementer, en klammeparentes som ikke er lukket, eller en kommentar. Lim det inn i en JSON-validator, så peker den på linjen.