JSON is een op tekst gebaseerd ge­ge­vens­for­maat dat vanwege zijn een­vou­di­ge structuur vaak wordt gebruikt om gegevens tussen ver­schil­len­de systemen uit te wisselen. Het codeert in­for­ma­tie als sleutel-waar­de­pa­ren die door vrijwel elke pro­gram­meer­taal kunnen worden verwerkt. Het formaat is ook populair vanwege zijn lees­baar­heid, brede com­pa­ti­bi­li­teit en een­vou­di­ge im­ple­men­ta­tie.

Wat is JSON?

JSON is een plat­for­mon­af­han­ke­lijk ge­ge­vens­for­maat dat wordt gebruikt voor het verzenden en opslaan van ge­struc­tu­reer­de gegevens. Het formaat is afkomstig van Ja­vaScript, maar staat volledig op zichzelf, wat betekent dat het niet aan Ja­vaScript is gebonden. Het wordt door bijna alle pro­gram­meer­ta­len on­der­steund. JSON is een puur tekst­for­maat, ge­mak­ke­lijk te lezen en te schrijven voor mensen en efficiënt te parseren voor machines.

In veel gevallen geven ont­wik­ke­laars de voorkeur aan het JSON-formaat, voor­na­me­lijk omdat het de uit­wis­se­ling van gegevens tussen ver­schil­len­de tech­no­lo­gie­ën ver­ge­mak­ke­lijkt. Wanneer een gebruiker bij­voor­beeld een kle­ding­stuk koopt in een online winkel, worden de gegevens in JSON-formaat naar de server verzonden. De server verwerkt de gegevens en stuurt het antwoord ook in JSON-formaat terug, waardoor een naadloze ge­ge­vens­uit­wis­se­ling wordt ge­ga­ran­deerd.

Het be­lang­rijk­ste kenmerk van JSON is de dui­de­lijk­heid: het ge­ge­vens­for­maat maakt gebruik van een beperkte en con­sis­ten­te notatie om in­for­ma­tie op een nauw­keu­ri­ge maar be­grij­pe­lij­ke manier weer te geven. Het maakt ook gebruik van Unicode, waardoor in­ter­na­ti­o­na­le tekens en speciale symbolen ge­mak­ke­lijk kunnen worden verwerkt. Dit betekent dat JSON een slanke en on­af­han­ke­lij­ke oplossing biedt voor moderne web- en API-com­mu­ni­ca­tie.

Hoe werkt JSON?

Een JSON-document moet een vaste syntaxis volgen: het begint altijd met een ope­nings­ac­co­la­de { en eindigt met een slui­tings­ac­co­la­de }. Binnen de accolades worden in­di­vi­du­e­le ge­ge­vens­vel­den ge­de­fi­ni­eerd door naam-waar­de­pa­ren. Deze beginnen met de naam, gevolgd door een dubbele punt : en de waarde. JSON on­der­steunt ver­schil­len­de ge­ge­vens­ty­pen, elk met hun eigen at­tri­bu­ten en ge­dra­gin­gen om va­ri­a­be­len op te slaan. Deze omvatten:

  • Objecten: Een JSON-ob­ject­ge­ge­vens­ty­pe bestaat uit naam-waar­de­pa­ren tussen accolades. De sleutels moeten unieke te­ken­reek­sen zijn die door een komma worden ge­schei­den.
  • Arrays: Een array-ge­ge­vens­ty­pe ver­te­gen­woor­digt een geordende ver­za­me­ling waarden. Deze moeten van het type Object, Array, String, Number, Boolean of Null zijn.
  • Strings: In JSON worden strings vaak gebruikt om tekst­ge­ba­seer­de gegevens zoals namen of adressen op te slaan en over te dragen. De strings worden tussen dubbele aan­ha­lings­te­kens ”” geplaatst en on­der­steu­nen het volledige bereik van Unicode-tekens.
  • Boolean: Boole­aan­se waarden kunnen waar of onwaar zijn. Ze worden behandeld als strings, maar worden niet tussen aan­ha­lings­te­kens geplaatst.
  • Number: Dit ge­ge­vens­ty­pe wordt gebruikt om numerieke waarden op te slaan voor ver­schil­len­de doel­ein­den, zoals ge­ge­vens­ana­ly­se of be­re­ke­nin­gen. JSON on­der­steunt zowel positieve als negatieve getallen, evenals decimale punten.
  • Null: Wanneer een variabele leeg is, kan dit worden uit­ge­drukt door deze de waarde Null toe te kennen.

Het volgende voorbeeld il­lu­streert de structuur van een JSON-dataset:

{ 
    "dataField1": "Value", 
    "dataObject": { 
        "field1": 123, 
        "field2": "Text", 
        "field3Array": ["Value1", "Value2", "Value3", "Value4"] 
    } 
}
json

Wat zijn de voordelen van JSON?

JSON scoort hoog op veel gebieden dankzij zijn eenvoud en ef­fi­ci­ën­tie, waardoor het het favoriete formaat is voor veel moderne toe­pas­sin­gen. Het volgende overzicht geeft de be­lang­rijk­ste voordelen van JSON weer:

  • Licht­ge­wicht en ruim­te­be­spa­rend: JSON eli­mi­neert onnodige op­maat­ele­men­ten en gebruikt slechts enkele struc­tu­re­le tekens, waardoor de op­slag­ve­r­eis­ten en het trans­mis­sie­vo­lu­me worden ver­min­derd.

  • Ge­mak­ke­lijk leesbaar: de dui­de­lij­ke syntaxis van JSON is zonder ge­spe­ci­a­li­seer­de kennis te begrijpen. Zelfs grotere datasets blijven over­zich­te­lijk, wat het opsporen van fouten ver­ge­mak­ke­lijkt.

  • Brede on­der­steu­ning: of het nu gaat om Ja­vaScript, Python, Java, PHP of C# – JSON wordt native on­der­steund door bijna alle pro­gram­meer­ta­len en fra­me­works, of aan­ge­bo­den via stan­daard­bi­bli­o­the­ken. Veel NoSQL-databases, zoals MongoDB of CouchDB, slaan do­cu­men­ten recht­streeks op in JSON-formaat of een JSON-achtig ge­ge­vens­for­maat, wat de conversie-in­span­ning ver­min­dert.

  • Flexibele da­ta­mo­del­le­ring: Dankzij de on­der­steu­ning voor geneste struc­tu­ren kunnen complexe en hi­ë­rar­chi­sche da­ta­mo­del­len zonder problemen in kaart worden gebracht.

Waarvoor wordt JSON doorgaans gebruikt?

Vanwege zijn veel­zij­di­ge voordelen wordt het JSON-ge­ge­vens­for­maat in vrijwel elk gebied van soft­wa­re­ont­wik­ke­ling gebruikt. Klassieke toe­pas­sings­ge­bie­den zijn onder meer:

  • Plat­for­mon­af­han­ke­lij­ke ge­ge­vens­over­dracht: JSON is ideaal voor het uit­wis­se­len van gegevens tussen ver­schil­len­de systemen en pro­gram­meer­ta­len.
  • Aanmaken van dy­na­mi­sche JSON-gegevens op basis van ge­brui­kers­in­voer: JSON is uit­ste­kend geschikt voor het ge­struc­tu­reerd opslaan van tij­de­lij­ke, door ge­brui­kers ge­ge­ne­reer­de in­for­ma­tie. Zo is het bij­voor­beeld mogelijk om for­mu­lier­vel­den op websites direct om te zetten in een JSON-object en deze te se­ri­a­li­se­ren.
  • Con­fi­gu­ra­tie van gegevens voor ap­pli­ca­ties: elke ap­pli­ca­tie heeft de juiste in­log­ge­ge­vens nodig om ver­bin­ding te maken met een database. In­log­ge­ge­vens en het pad naar het log­be­stand kunnen worden opgegeven in een JSON-bestand, dat door alle betrokken partijen kan worden gebruikt.
  • Ver­een­vou­di­ging van complexe ge­ge­vens­struc­tu­ren: JSON reduceert complexe do­cu­men­ten tot es­sen­ti­ë­le elementen en zet ze om in ge­mak­ke­lijk leesbare struc­tu­ren. Dit verhoogt de trans­pa­ran­tie van ge­ge­vens­mo­del­len en maakt de toegang tot relevante in­for­ma­tie een­vou­di­ger.
  • Con­fi­gu­ra­tie­be­stan­den: JSON-do­cu­men­ten zijn eenvoudig op te vragen en te bewerken, waardoor het formaat vaak wordt gebruikt voor con­fi­gu­ra­tie­be­stan­den, met name in Ja­vaScript-eco­sys­te­men zoals Node.js.

Wat zijn enkele al­ter­na­tie­ven voor JSON?

Hoewel het JSON-formaat in veel gevallen als standaard wordt beschouwd, bestaan er andere ge­ge­vens­for­ma­ten die in spe­ci­fie­ke scenario’s wellicht nog ge­schik­ter zijn. Enkele van de bekendste al­ter­na­tie­ven zijn:

  • XML (Ex­ten­si­ble Markup Language): Voordat JSON populair werd, was XML het meest gebruikte formaat voor ge­ge­vens­se­ri­a­li­sa­tie. Het sterk ge­ty­peer­de en flexibele tekst­for­maat kan complexe ge­ge­vens­struc­tu­ren en meta­ge­ge­vens opslaan. Het formaat heeft ook sche­ma­de­fi­ni­ties (XSD) en trans­for­ma­ties (XSLT), maar is moei­lij­ker te lezen dan JSON.
  • YAML (YAML Ain’t Markup Language): Dit machinaal leesbare formaat wordt voor­na­me­lijk gebruikt voor con­fi­gu­ra­tie­be­stan­den en is een uit­brei­ding van JSON die op­mer­kin­gen on­der­steunt. Het YAML-formaat biedt een dui­de­lij­ke syntaxis, maar is complexer om te verwerken en vatbaar voor syn­taxisfou­ten.
  • Protobuf (Protocol Buffers): Dit is een binair ge­ge­vens­for­maat van Google dat bekend staat om zijn com­pact­heid en hoge ef­fi­ci­ën­tie. Protobuf vereist echter sche­ma­de­fi­ni­ties. Bovendien is het formaat niet leesbaar voor mensen, wat het opsporen van fouten kan be­moei­lij­ken.
Ga naar hoofdmenu