json logo

Introduktion til 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) er et letvægtsformat til dataudveksling. Mennesker kan let læse og skrive JSON. Maskiner kan let analysere og generere JSON. Det er baseret på en delmængde af JavaScript programmingssproget, Standard ECMA-262 3rd Edition - December 1999. JSON er et tekstformat, der er fuldstændig sproguafhængigt. JSONs konventioner er velkendte for udviklere, der anvender C-lignende sprog så som C, C++, C#, Java, JavaScript, Perl, Python og mange andre. De egenskaber gør JSON til et ideelt sprog for dataudveksling.

JSON bygger på to strukturer:

Begge er universelle datastrukturer. Stort set alle moderne programmingssprog understøtter dem på en eller anden måde. Det giver derfor god mening, at et tekstformat til dataudveksling mellem programmeringssprog også bygger på disse strukturer.

I JSON optræder de som følger:

Et objekt er en ikke-sorteret samling af navn/værdi par. Et objekt begynder med en {venstre tuborg-parentes og slutter med en }højre tuborg-parentes. Efter hvert navn følger et :kolon, mens navn/værdi parrene adskilles med ,komma.

Et array er en ordnet samling af værdier. Det begynder med en [venstre firkant-parentes og slutter med en ]højre firkant-parentes. Værdierne adskilles med ,komma.

En værdi kan være en tekststreng i citationstegn (dobbelt flueben), en talværdi, true, false, null, et objekt eller et array. Disse strukturer kan indlejres i hinanden.

En tekststreng er en sekvens af nul eller flere Unicode tegn; den omklamres af citationstegn (dobbelt flueben) og den bruger baglæns skråstreg som "escape" tegn. Et enkelt tegn præsenteres som en tekststreng, der kun indeholder netop det tegn. En tekststreng er meget lig "string" i C eller Java.

En talværdi er meget lig en talværdi i C eller Java, bortset fra JSON hverken benytter oktalt eller hexadecimalt format.

Mellemrum af enhver art (whitespace) kan indsættes mellem to vilkårlige elementer. Med undtagelse af nogle få kodningsdetaljer er dette den komplette beskrivelse af JSON sproget.

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