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 }
- Eksempel:
- 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.
42eller3.14 - en boolean:
trueellerfalse nullfor å 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 (
trueer gyldig,Trueer 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.\u00E9foré
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:
123eller3.14 - Boolsk:
true/false - Null:
null