Wat is JSON? Structuur, gebruik en controle
Auteur: Redactie Domeny.ForSale Gepubliceerd
In het kort: JSON is een tekstformaat voor het opslaan en uitwisselen van gegevens. Het wordt onder meer gebruikt in applicaties, configuratiebestanden en communicatie met servers. Het ordent informatie met namen, waarden en lijsten, zodat zowel mensen als programma’s die kunnen lezen. Het is geen programmeertaal: het beschrijft gegevens, maar bevat geen instructies om uit te voeren.
Waarvoor wordt JSON gebruikt?
De naam JSON staat voor JavaScript Object Notation. Hoewel het formaat is afgeleid van de notatie voor objecten in JavaScript, is het onafhankelijk van die taal. Onder meer Python, Java, PHP en C# ondersteunen het.
JSON wordt vaak gebruikt in een API, een interface waarmee programma’s met elkaar kunnen communiceren. Wanneer een winkelapplicatie de productnaam, prijs en beschikbaarheid van een server ophaalt, kan het antwoord in dit formaat worden aangeleverd. De applicatie leest de waarden en toont op basis daarvan de productinformatie.
Hetzelfde formaat wordt gebruikt om programma-instellingen op te slaan, gegevens te exporteren of gebeurtenissen tussen diensten door te geven. Bestanden hebben meestal de extensie .json, maar gegevens in JSON kunnen ook worden verstuurd zonder een apart bestand aan te maken.
Hoe ziet JSON eruit en hoe lees je het?
Veel documenten in JSON bestaan uit een object: een verzameling naam-waardeparen. De naam wordt ook een sleutel genoemd. Het volgende voorbeeld beschrijft een product in een winkel:
{
"naam": "Keramische mok",
"prijs": 39.90,
"valuta": "PLN",
"beschikbaar": true,
"kleuren": ["wit", "groen"],
"fabrikant": {
"naam": "Voorbeeldatelier"
},
"promotiecode": null
}
Accolades {} geven een object aan. Een dubbele punt scheidt de sleutel van de waarde, en een komma scheidt de opeenvolgende paren. In dit voorbeeld heeft de sleutel naam de tekstwaarde Keramische mok, terwijl prijs een numerieke waarde heeft.
Vierkante haken [] geven een array aan: een geordende lijst met waarden. De lijst kleuren bevat twee tekstwaarden. fabrikant is een object binnen een ander object. Met zulke geneste objecten kun je samenhangende informatie groeperen.
JSON kent zes soorten waarden:
- tekst, tussen dubbele aanhalingstekens, bijvoorbeeld
"PLN"; - een getal, bijvoorbeeld
39.90of12; - een booleaanse waarde:
trueoffalse; null, waarmee expliciet wordt aangegeven dat er geen waarde is;- een object, tussen
{}; - een array, tussen
[].
Een volledig document in JSON hoeft geen object te zijn. Het kan ook een array, tekst, een getal of een andere toegestane waarde zijn. Een specifieke API kan echter wel een bepaalde structuur vereisen.
Notatieregels en veelgemaakte fouten
JSON heeft een strikte syntaxis. Sleutels van objecten en tekstwaarden moeten tussen dubbele aanhalingstekens staan; enkele aanhalingstekens zijn geen alternatief. Decimale getallen worden met een punt geschreven, niet met een komma, ongeacht de Poolse regels voor getalnotatie.
Na het laatste element van een object of array mag geen komma staan. Standaard ondersteunt JSON ook geen commentaar. Daarom is de volgende notatie onjuist:
{'naam': 'Mok', 'prijs': 39.90,}
De correcte versie ziet er zo uit:
{"naam": "Mok", "prijs": 39.90}
Spaties, inspringing en regeleinden buiten tekstwaarden verbeteren de leesbaarheid, maar veranderen de betekenis van de gegevens niet. Een dubbel aanhalingsteken binnen een tekstwaarde moet daarentegen worden voorafgegaan door een backslash, bijvoorbeeld "Mok \"Poranek\"". De backslash zelf schrijf je als \\.
Correcte syntaxis betekent nog niet dat de gegevens kloppen. De waarde "39.90" is tekst, terwijl 39.90 een getal is. Beide zijn toegestaan in JSON, maar een programma dat een getal verwacht, kan de tekst afwijzen. Ook null, een lege tekstwaarde "" en een ontbrekende sleutel zijn verschillende situaties. Hun betekenis hangt af van de applicatie.
Vermijd ook het herhalen van dezelfde sleutelnaam binnen één object. Programma’s kunnen zulke gegevens verschillend interpreteren en bijvoorbeeld alleen de laatste waarde behouden.
Hoe open en controleer je een bestand in JSON?
Een bestand in JSON kun je openen met een gewone teksteditor. Een code-editor is handiger: die geeft de syntaxis kleur, verzorgt de inspringing en wijst fouten aan. Om het bestand alleen te lezen, hoef je geen server te starten of ontwikkelomgeving te installeren.
Als het bestand niet werkt in de applicatie, controleer het dan in deze volgorde:
- Maak een kopie van het bestand voordat je het bewerkt.
- Controleer de syntaxis met een validatietool voor JSON: de aanhalingstekens, komma’s en afsluitende haakjes.
- Vergelijk de veldnamen en waardetypen met de documentatie van de applicatie.
- Controleer de verplichte velden en toegestane waarden, zoals de valutacode of het datumformaat.
JSON heeft geen apart datumtype. Daarom worden datums vaak als tekst opgeslagen volgens een afgesproken notatie. De vereisten voor de structuur kun je beschrijven met JSON Schema: regels die onder meer vastleggen welke velden verplicht zijn en welke typen ze hebben.
Plak bestanden met wachtwoorden, sleutels voor een API of persoonsgegevens niet in willekeurige online validators. Controleer zulke gegevens lokaal met een betrouwbare tool.
Wanneer kies je JSON en wanneer een ander formaat?
JSON is geschikt voor gegevens met een geneste structuur: een bestelling bevat bijvoorbeeld een klant, een adres en een lijst met producten. Voor een eenvoudige tabel die in een spreadsheet moet worden gebruikt, kan CSV handiger zijn. Dat formaat slaat gegevens op in rijen en kolommen.
Bij een koppeling met een externe dienst kun je het formaat niet vrij kiezen: de documentatie van die dienst bepaalt wat nodig is. Begin met een voorbeeldbericht in de vorm die de dienst vereist, wijzig enkele waarden en controleer zowel de syntaxis als de overeenstemming van de velden met de vereisten. Zo kun je een fout in de notatie van JSON onderscheiden van een fout in de gegevens die het programma verwacht.
Zie ook: Wat is CDN?
