json-explanation
Detta dokument förklarar vad JSON är, hur det skrivs, vilka tecken du kan använda och hur du undviker specialtecken.
Vad är JSON?
- JSON står för JavaScript Object Notation. Det är ett vanligt textformat för lagring och utbyte av strukturerade data (som inställningar, listor eller små databaser).
- JSON är läsbart för människor och används av många verktyg och webbplatser för att dela information.
Grundläggande byggstenar
- Objekt: En samling nyckel/värdepar omgivna av klamrar
{ }.- Exempel:
{"name":"Alice","age": 30 }
- Exempel:
- Array: En ordnad lista med värden omgiven av hakparenteser
[ ].- Exempel:
[{"id": 1 }, {"id": 2 }]
- Exempel:
- Nyckel (kallas även egenskapsnamn): Alltid en sträng omgiven av dubbla citattecken
". - Värde: Kan vara något av följande:
- en sträng (inom dubbla citattecken), t.ex."hej"
- ett tal, t.ex.
42eller3,14 - en boolesk variabel:
trueellerfalse nullför att representera"inget värde"- ett objekt
{ ... } - en array
[ ... ]
Formateringsregler (måste-krav)
- Nycklar måste vara inom dubbla citattecken. Enkla citattecken är inte tillåtna för nycklar.
- Strängar måste använda dubbla citattecken ("så här").
- Använd ett kolon
:mellan varje nyckel och dess värde:"nyckel": värde. - Separera objekt i objekt och matriser med kommatecken
,. - Sätt inte ett kommatecken efter det sista objektet i ett objekt eller en matris (inga avslutande kommatecken).
- JSON är skiftlägeskänsligt (
trueär giltigt,Trueär inte det). - Du kan inte lägga in kommentarer i JSON (vissa verktyg accepterar dem, men standard-JSON gör det inte).
Exempel (giltig JSON):
{
"title":"Example",
"enabled": true,
"count": 5,
"tags": ["docs","example"],
"owner": {"name":"Alice","email":"[email protected]" }
}
Tecken och kodningar
- JSON-text kodas normalt i UTF-8, som stöder de flesta tecken och språk.
- Inuti strängar kan du använda bokstäver, siffror, skiljetecken och många Unicode-tecken direkt.
- Vissa tecken måste undvikas inuti strängar (se nästa avsnitt).
Escaping av specialtecken i strängar
Om du behöver inkludera vissa specialtecken i en sträng måste du escape dem med hjälp av en bakåtslag \ följt av en kod eller ett tecken:
\"— ett dubbelt citattecken i en sträng\\— en bakåtslag\n— ny rad (radbrytning)\t— tabb\r— vagnretur\b— backspace\f— formfeed\uXXXX— ett Unicode-tecken med hexadecimal kod, t.ex.\u00E9föré
Exempel med undantag:
{
"message":"Han sa, \"Hej\" på rad 1.\nSedan gick han.",
"path":"C:\\Users\\Name"
}
Vanliga misstag och hur man undviker dem
- Saknade dubbla citattecken runt nycklar:
{ name:"Alice" }är ogiltigt — använd"name". - Användning av enkla citattecken:
{ 'name': 'Alice' }är ogiltigt. - Avslutande kommatecken:
{"a": 1, }är ogiltigt. - Oescapade specialtecken i strängar (t.ex. ett oescapat dubbelt citattecken inuti en sträng).
- Dubbla citattecken som konverteras till
”smarta citattecken”(notera skillnaden mellan”och") av ordbehandlingsprogram
Snabbguide
- Objekt:
{"nyckel": värde } - Array:
[ värde1, värde2 ] - Sträng:
"text" - Tal:
123eller3,14 - Booleskt värde:
true/false - Null:
null