json logo

Introduktion till JSON


How JavaScript Works by Douglas Crockford

العربية Български 中文 Český Dansk Nederlands English Esperanto Français Deutsch Ελληνικά עברית Magyar Indonesia
Italiano 日本 한국어 فارسی Polski Português Română Русский Српско-хрватски Slovenščina Español Svenska Türkçe Tiếng Việt

ECMA-404 The JSON Data Interchange Standard.

JSON (JavaScript Object Notation) är ett lättviktigt datautbytesformat. Det är enkelt för människor att läsa och skriva. Det är enkelt för maskiner att parsa och generera. Det är baserat på en delmängd av programmeringsspråket JavaScript, Standard ECMA-262 3rd Edition - December 1999. JSON är ett textbaserat format som är helt oberoende av programmeringsspråk men som använder syntaxkonventioner som är välkända för programmerare med erfarenhet av C-liknande språk, som C, C++, C#, Java, JavaScript, Perl, Python och många andra. Dessa egenskaper gör JSON till ett idealt språk för datautbyte.

JSON baseras på två grundstrukturer:

Dessa är universellt kända strukturer. I princip alla moderna programmeringsspråk har stöd för dem i en eller annan form. Det är rimligt att ett utbytesformat för data mellan olika programmeringsspråk också ska baseras på dessa strukturer.

I JSON uttrycks de på följande sätt:

Ett objekt är en oordnad mängd med nyckel/värdepar. Ett objekt börjar med {vänster klammerparentes och slutar med }höger klammerparentes. Varje nyckel följs av :kolon och nyckel/värdeparen åtskiljs av ,komma.

En 'array' är en ordnad mängd av värden. En 'array' börjar med [vänster hakparentes och slutar med ]höger hakparentes. Värden åtskiljs av ,komma.

Ett värde kan vara en sträng inom dubbla citattecken, eller ett tal, eller true eller false eller null, eller ett objekt eller en 'array'. Dessa strukturer kan vara nästlade.

En sträng är en sekvens av noll eller flera Unicode-tecken, inom dubbla citattecken, som kan innehålla omvänt snedstreck. Ett tecken representeras som en sträng med ett tecken. En sträng är mycket lik en C- eller Java-sträng.

Ett nummer är mycket likt ett C- eller Java-nummer, förutom att de oktala och hexadecimala formaten inte används.

Blanktecken kan användas mellan alla sorters lexem. Med undantag för ett par kodningsdetaljer, så är detta en fullständig beskrivning av språket.

json element

value object array string number "true" "false" "null"

object '{' ws '}' '{' members '}'

members member member ',' members

member ws string ws ':' element

array '[' ws ']' '[' elements ']'

elements element element ',' elements

element ws value ws

string '"' characters '"'

characters "" character characters

character '0020' . '10FFFF' - '"' - '\' '\' escape

escape '"' '\' '/' 'b' 'f' 'n' 'r' 't' 'u' hex hex hex hex

hex digit 'A' . 'F' 'a' . 'f'

number integer fraction exponent

integer digit onenine digits '-' digit '-' onenine digits

digits digit digit digits

digit '0' onenine

onenine '1' . '9'

fraction "" '.' digits

exponent "" 'E' sign digits 'e' sign digits

sign "" '+' '-'

ws "" '0020' ws '000A' ws '000D' ws '0009' ws