📋
← Terug naar handleidingen

Wat is JSON? Een complete gids voor beginners

· Tags: json, what-is-json, json-syntax, json-data-types, web-development

Wat is JSON?

JSON (JavaScript Object Notation) is een lichtgewicht, tekstgebaseerd gegevensuitwisselingsformaat dat is ontworpen om gemakkelijk leesbaar en schrijfbaar te zijn voor mensen en gemakkelijk te parsen en te genereren voor machines. Het is oorspronkelijk afgeleid van de JavaScript-objectliteral-syntax, maar is sindsdien een taalonafhankelijke standaard geworden die door vrijwel elke programmeertaal wordt ondersteund.

Tegenwoordig is JSON het dominante formaat voor gegevensuitwisseling op het web. Het vormt de basis van REST API's, configuratiebestanden, NoSQL-databases, communicatie in mobiele apps en talloze andere gegevensgedreven systemen. De eenvoud en alomtegenwoordigheid hebben het de standaardkeuze gemaakt voor ontwikkelaars wereldwijd.

JSON-syntaxregels

JSON volgt een strikte en minimale set syntaxregels:

  • Gegevens zijn gestructureerd in sleutel/waarde-paren
  • Alle sleutels moeten strings tussen dubbele aanhalingstekens zijn (enkele aanhalingstekens zijn niet toegestaan)
  • Sleutel/waarde-paren worden gescheiden door een dubbele punt (:)
  • Paren worden gescheiden door komma's (,)
  • Accolades {} omsluiten objecten
  • Vierkante haakjes [] omsluiten arrays
  • Afsluitende komma's zijn niet toegestaan
  • Opmerkingen zijn niet toegestaan in strikte JSON

Geldig JSON-voorbeeld

{
  "name": "Jane Smith",
  "age": 28,
  "isEmployed": true,
  "skills": ["JavaScript", "Python", "SQL"],
  "address": {
    "street": "123 Main Street",
    "city": "San Francisco",
    "zipCode": "94102"
  },
  "phoneNumbers": null
}

Ongeldige JSON-voorbeelden

Afsluitende komma (ongeldig):

{
  "name": "Jane",
  "age": 28,
}

Sleutel met enkele aanhalingstekens (ongeldig):

{ 'name': 'Jane' }

Ontbrekende aanhalingstekens bij sleutel (ongeldig):

{ name: "Jane" }

JSON-datatypen

JSON ondersteunt precies zes datatypen:

| Type | Beschrijving | Voorbeeld | |------|-------------|---------| | String | Unicode-tekst tussen dubbele aanhalingstekens | "Hello, world!" | | Number | Geheel getal of getal met drijvende komma | 42, 3.14, -7, 1.5e10 | | Boolean | Logisch waar of onwaar | true, false | | Null | Opzettelijk lege waarde | null | | Object | Ongeordende verzameling van sleutel/waarde-paren | {"key": "value"} | | Array | Geordende lijst van waarden | [1, 2, 3] |

Opvallend afwezig: datums, tijdstempels, binaire gegevens, undefined en functies hebben geen native JSON-weergave. Datums worden conventioneel opgeslagen als ISO 8601-strings.

JSON vs. andere gegevensformaten

JSON staat naast verschillende andere gegevensuitwisselingsformaten, elk met afwegingen:

  • JSON vs. XML: JSON is beknopter en sneller te parsen. XML ondersteunt attributen, namespaces en schema's (XSD), maar is aanzienlijk uitgebreider.
  • JSON vs. YAML: YAML is leesbaarder voor mensen bij configuratiebestanden en ondersteunt opmerkingen, maar de inspringingsgevoelige syntax kan foutgevoelig zijn. JSON is draagbaarder en heeft strengere validatie.
  • JSON vs. CSV: CSV is alleen plat en tabelvormig. JSON ondersteunt geneste hiërarchieën en gemengde datatypen.
  • JSON vs. Protocol Buffers: Protobuf is kleiner en sneller voor machine-tot-machine-communicatie, maar vereist een schemadefinitie en is niet leesbaar voor mensen.

Waarom JSON web-API's domineert

Verschillende factoren verklaren de dominantie van JSON in web-API-ontwerp:

  1. Taalomvang -- Elke grote taal heeft een native of goed onderhouden JSON-parser, waardoor integratiewrijving verdwijnt.
  2. Native browserondersteuning -- De JSON.parse() en JSON.stringify() van JavaScript maken JSON de natuurlijke keuze voor webapplicaties.
  3. Minimale bandbreedte -- De lichtgewicht syntax van JSON produceert kleinere payloads dan XML, waardoor latentie en bandbreedtekosten afnemen.
  4. Leesbaarheid voor mensen -- Ontwikkelaars kunnen JSON-gegevens inspecteren, debuggen en met de hand schrijven zonder speciale tools.
  5. Flexibel schema -- In tegenstelling tot rigide formaten zoals XML Schema of Protocol Buffers, kan JSON zich aanpassen aan veranderende gegevensstructuren zonder hercompilatie.

Veelvoorkomende JSON-gebruiksgevallen

  • REST- en GraphQL-API's -- Het standaardformaat voor verzoek- en antwoordpayloads.
  • Configuratiebestanden -- Gebruikt door tools zoals ESLint, Prettier, webpack en VS Code.
  • NoSQL-databases -- MongoDB en CouchDB slaan gegevens op als JSON-achtige documenten.
  • Gegevensserialisatie -- Gegevens structureren voor opslag, overdracht of caching.
  • Realtime communicatie -- JSON-berichten in WebSocket-streams en webhooks.
  • Logaggregatie -- Gestructureerde loggingtools zoals Winston, Logstash en Datadog gebruiken JSON voor doorzoekbare, filterbare logboekitems.

JSON-validatie en -opmaak

Bij het werken met JSON is validatie cruciaal. Een enkele syntaxfout -- een afsluitende komma, een ontbrekend aanhalingsteken of een niet-escaped teken -- kan een hele API-integratie of een heel configuratiebestand breken. Handmatige inspectie is onbetrouwbaar, vooral bij grote JSON-documenten.

Hoe JSON te valideren

Validatie volgt doorgaans deze stappen:

  1. Parse de JSON-string met een standaardparser zoals JSON.parse() in JavaScript of het equivalent in de taal van jouw keuze.
  2. Controleer op syntaxfouten -- de parser gooit een fout bij de eerste overtreding met een bericht dat de locatie van het probleem aangeeft.
  3. Los fouten iteratief op -- aangezien parsers stoppen bij de eerste fout, los die op en valideer opnieuw totdat het document slaagt.

De meeste online JSON-tools combineren validatie met opmaak. Plak je JSON en de tool controleert direct de syntax, markeert fouten met regel- en kolomnummers en produceert schone, ingesprongen uitvoer. Dit is aanzienlijk sneller dan debuggen met parseruitzonderingen in je code.

Tips voor het werken met JSON

  • Valideer altijd vóór gebruik -- Ga er nooit vanuit dat handgeschreven JSON geldig is.
  • Gebruik een linter -- Tools zoals ESLint met JSON-plugins vangen fouten op voordat ze de productie bereiken.
  • Geef de voorkeur aan JSON-bibliotheken -- Genereer JSON met serialisatiebibliotheken in plaats van stringconcatenatie om subtiele syntaxfouten te voorkomen.
  • Stel strikte Content-Type-headers in -- Dwing voor API's Content-Type: application/json af om slecht gevormde verzoeken vroeg te verwerpen.

Gebruik een gratis online JSON-validator en -formatter om direct je JSON-syntax te controleren, fouten te lokaliseren en je gegevens op te maken voor leesbaarheid. Of je nu een beginner bent die de basis leert of een ervaren ontwikkelaar die een productie-API debugt, onze JSON Formatter & Validator-tool helpt je efficiënt met JSON-gegevens te werken.