Gå til hovedinnhold

Forklaring av JSON

Dette dokumentet forklarer hva JSON er, hvordan det skrives, hvilke tegn du kan bruke og hvordan du kan unngå spesialtegn.

Hva er JSON?

  • JSON står for JavaScript Object Notation. Det er et ren tekstformat for lagring og utveksling av strukturerte data (som innstillinger, lister eller små databaser).
  • JSON er lesbart for mennesker og brukes av mange verktøy og nettsteder for å dele informasjon.

Grunnleggende byggesteiner

  • Objekt: En samling av nøkkel/verdi-par omgitt av krøllparenteser { }.
    • Eksempel: {"name":"Alice","age": 30 }
  • Array: En ordnet liste med verdier omgitt av firkantede parenteser [ ].
  • Eksempel: [{"id": 1 }, {"id": 2 }]
  • Nøkkel (også kalt egenskapsnavn): Alltid en streng omgitt av doble anførselstegn ".
  • Verdi: Kan være ett av følgende:
    • en streng (i doble anførselstegn), f.eks."hello"
    • et tall, f.eks. 42 eller 3.14
    • en boolean: true eller false
    • null for å representere"ingen verdi"
    • et objekt { ... }
    • en matrise [ ... ]

Formateringsregler (må-ha)

  • Nøkler må være i doble anførselstegn. Enkle anførselstegn er ikke tillatt for nøkler.
  • Strenger må bruke doble anførselstegn ("slik").
  • Bruk kolon : mellom hver nøkkel og dens verdi: "nøkkel": verdi.
  • Skille elementer i objekter og matriser med kommaer ,.
  • Ikke sett komma etter det siste elementet i et objekt eller en matrise (ingen etterfølgende kommaer).
  • JSON er skiftesensitivt (true er gyldig, True er ikke det).
  • Du kan ikke sette kommentarer i JSON (noen verktøy godtar dem, men standard JSON gjør ikke det).

Eksempel (gyldig JSON):

{
"title":"Example",
"enabled": true,
"count": 5,
"tags": ["docs","example"],
"owner": {"name":"Alice","email":"[email protected]" }
}

Tegn og kodinger

  • JSON-tekst er normalt kodet i UTF-8, som støtter de fleste tegn og språk.
  • Innenfor strenger kan du bruke bokstaver, tall, tegnsetting og mange Unicode-tegn direkte.
  • Noen tegn må eskapes innenfor strenger (se neste avsnitt).

Escaping av spesialtegn i strenger

Hvis du trenger å inkludere visse spesialtegn i en streng, må du escape dem ved å bruke en tilbakeslag \ etterfulgt av en kode eller et tegn:

  • \" — et dobbelt anførselstegn i en streng
  • \\ — en tilbakeslag
  • \n — ny linje (linjeskift)
  • \t — tabulator
  • \r — vognretur
  • \b — tilbakeslag
  • \f — sideskift
  • \uXXXX — et Unicode-tegn med heksadesimal kode, f.eks. \u00E9 for é

Eksempel med unnslipping:

{
"message":"Han sa, \"Hallo\" på linje 1.\nSå gikk han.",
"path":"C:\\Users\\Name"
}

Vanlige feil og hvordan du unngår dem

  • Manglende doble anførselstegn rundt nøkler: { name:"Alice" } er ugyldig — bruk "name".
  • Bruk av enkelt anførselstegn: { 'name': 'Alice' } er ugyldig.
  • Kommaer på slutten: {"a": 1, } er ugyldig.
  • Spesialtegn uten escape-koder i strenger (f.eks. et dobbelt anførselstegn uten escape-kode i en streng).
  • Doble anførselstegn som konverteres til «smarte anførselstegn» (merk forskjellen mellom og ") av tekstbehandlingsprogrammer

Hurtigreferanse-jukselapp

  • Objekt: {"key": value }
  • Array: [ value1, value2 ]
  • Streng: "text"
  • Tall: 123 eller 3.14
  • Boolsk: true / false
  • Null: null