JSON is een manier om gegevens op te schrijven als tekst, zodat elk programma ze kan lezen. De naam staat voor JavaScript Object Notation, maar laat je daar niet door misleiden: het werkt in elke taal.

Zo ziet het eruit:

{
  "naam": "Daan",
  "oefening": "klimmen",
  "seconden": 94.20,
  "fouten": 1,
  "geslaagd": true
}

Er zijn maar een paar regels:

Meerdere dingen zet je in een lijst met blokhaken:

{
  "resultaten": [
    { "naam": "Daan", "seconden": 94.20 },
    { "naam": "Casper", "seconden": 88.75 }
  ]
}

Waarom gebruikt iedereen dit?

Omdat het leesbaar is voor mensen én voor machines. Je ziet in één oogopslag wat er staat, en toch kan elke programmeertaal het inlezen met een standaardfunctie. Daarom kan een API in PHP praten met een game in C#: geen van beide hoeft iets van de ander te weten, ze spreken allebei JSON.

Twee dingen om te onthouden

Het is tekst, verder niets. 94.20 is in een JSON-bericht geen getal maar vier tekens. Pas als je programma het inleest wordt er een float van. Daarom gaat het mis als er iets staat wat geen getal kan zijn.

Hoofdletters tellen. "naam" en "Naam" zijn twee verschillende eigenschappen. In Unity betekent dat: heet je veld Naam en staat er in de JSON naam, dan blijft dat veld gewoon leeg zonder dat je een foutmelding krijgt.