Het verhaal achter de JSON-formatter

JSON is nu het formaat dat de meeste web-API's spreken, maar het is nooit door een commissie ontworpen. Het werd eerder opgemerkt dan uitgevonden: een kleine deelverzameling van JavaScript die net genoeg bleek om gegevens tussen programma's uit te wisselen.

Accolades en geneste gegevensblokken die een gloeiende boom vormen
Accolades en geneste gegevensblokken die een gloeiende boom vormen

Een ontdekt formaat

Rond 2001 zochten Douglas Crockford en zijn collega's bij State Software een manier waarop een browser en een server zonder plug-ins gegevens konden uitwisselen. Ze gebruikten de object- en arrayliteralen die JavaScript al begreep, gaven het idee een naam en zetten de grammatica op json.org, beroemd omdat die op de achterkant van een visitekaartje past.

Waarom er geen commentaar is

Al vroeg haalde Crockford commentaar uit JSON, omdat mensen er aanwijzingen voor de parser in begonnen te stoppen, wat de uitwisselbaarheid zou breken. Zijn advies was commentaar vóór het parsen met een minimalizer te verwijderen. Daarom meldt een formatter commentaar als onverwacht teken, en daarom bestaan formaten als JSON5 en JSONC voor configuratiebestanden.

Van webpagina naar standaard

JSON werd in 2006 voor het eerst beschreven als RFC 4627. Ecma publiceerde in 2013 ECMA-404, en de IETF verving de oudere teksten in 2017 door RFC 8259, die UTF-8 verplicht stelt voor JSON dat tussen systemen wordt uitgewisseld. De grammatica is sinds json.org nauwelijks veranderd: objecten, arrays, strings, getallen, true, false en null.

Getallen en paden

JSON zelf begrenst getallen niet, maar de meeste parsers slaan ze op als 64-bits drijvendekommagetallen, zodat gehele getallen boven 9007199254740991 ongemerkt precisie kunnen verliezen. Grote ID's worden daarom vaak als string verstuurd. Om naar een waarde te wijzen stelde Stefan Goessner in 2007 JSONPath voor, naar het voorbeeld van XPath, en in 2024 werd dat de standaard RFC 9535. De paden die deze formatter kopieert, volgen die notatie met dollarteken en haken.

Veelgestelde vragen

Wie heeft JSON uitgevonden?

Douglas Crockford heeft JSON begin jaren 2000 gespecificeerd en bekendgemaakt. Hij zegt zelf dat hij het ontdekte, omdat het een bestaande deelverzameling van JavaScript is.

Waarom staat JSON geen komma's aan het eind of enkele aanhalingstekens toe?

De grammatica is zo klein mogelijk gehouden, zodat elke taal haar op dezelfde manier kan parsen. Elk extra gemak zou een nieuwe kans zijn dat twee parsers het oneens zijn.

Is JSON hetzelfde als een JavaScript-object?

Nee. JSON is tekst. Sleutels moeten dubbele aanhalingstekens hebben, en functies, undefined, commentaar, NaN en Infinity zijn niet toegestaan, ook al accepteert JavaScript ze in code.

Klaar om het te proberen?

Open PictorX in uw browser - geen installatie, geen creditcard vereist om te starten.

Open de JSON-formatter