Historien bakom JSON-formateraren

JSON är i dag formatet som de flesta webb-API:er talar, men det utformades aldrig av en kommitté. Det upptäcktes snarare än uppfanns: en liten delmängd av JavaScript som visade sig räcka precis för att flytta data mellan program.

Klammerparenteser och nästlade datablock som bildar ett lysande träd
Klammerparenteser och nästlade datablock som bildar ett lysande träd

Ett upptäckt format

Runt 2001 sökte Douglas Crockford och hans kolleger på State Software ett sätt för en webbläsare och en server att utbyta data utan insticksprogram. De använde objekt- och arrayliteralerna som JavaScript redan förstod, gav idén ett namn och lade grammatiken på json.org, känd för att få plats på baksidan av ett visitkort.

Varför det inte finns kommentarer

Tidigt tog Crockford bort kommentarer från JSON, eftersom folk började lägga instruktioner till tolken i dem, vilket skulle ha förstört kompatibiliteten. Hans råd var att ta bort kommentarer med en minimerare före tolkningen. Därför rapporterar en formaterare en kommentar som ett oväntat tecken, och därför finns format som JSON5 och JSONC för konfigurationsfiler.

Från webbsida till standard

JSON beskrevs först som RFC 4627 år 2006. Ecma gav ut ECMA-404 år 2013, och IETF ersatte de äldre texterna med RFC 8259 år 2017, som kräver UTF-8 för JSON som utbyts mellan system. Grammatiken har knappt ändrats sedan json.org: objekt, arrayer, strängar, tal, true, false och null.

Tal och sökvägar

JSON begränsar inte tal, men de flesta tolkar lagrar dem som 64-bitars flyttal, så heltal över 9007199254740991 kan tyst förlora precision. Stora id:n skickas därför ofta som strängar. För att peka ut ett värde föreslog Stefan Goessner JSONPath år 2007 med XPath som förebild, och det blev standarden RFC 9535 år 2024. Sökvägarna som denna formaterare kopierar följer den notationen med dollartecken och hakparenteser.

Ofta ställda frågor

Vem uppfann JSON?

Douglas Crockford specificerade och spred JSON i början av 2000-talet, men han säger själv att han upptäckte det, eftersom det är en delmängd av JavaScript som redan fanns.

Varför tillåter JSON inte avslutande kommatecken eller enkla citattecken?

Grammatiken hölls så liten som möjligt så att alla språk kan tolka den lika. Varje extra bekvämlighet vore ännu en chans för två tolkar att vara oense.

Är JSON samma sak som ett JavaScript-objekt?

Nej. JSON är text. Nycklar kräver dubbla citattecken, och funktioner, undefined, kommentarer, NaN och Infinity är inte tillåtna, även om JavaScript accepterar dem i kod.

Redo att prova det?

Öppna PictorX i din webbläsare - ingen installation, inget kreditkort krävs för att starta.

Öppna JSON-formateraren