fixmint
NL

De JSON-fouten achter de meeste parse-fouten, en hoe je ze oplost

Door · · bijgewerkt 8 november 2026 · 5 min leestijd

De meeste JSON parse-fouten komen door een korte lijst fouten: een overbodige komma, een string tussen enkele aanhalingstekens, een commentaar, een sleutel zonder aanhalingstekens, een waarde zoals NaN of undefined, of krulaanhalingstekens die uit een document zijn gekopieerd. JSON is strenger dan de JavaScript waarop het lijkt, dus code die voor een mens goed oogt, kan door een parser worden geweigerd. De foutmelding wijst naar een regel en een kolom, en de oplossing zit meestal op die plek of net ervoor.

JSON opmakenJSON wordt niet ingelezenGratis doen

De regels die JSON afdwingt

Een JSON-document is één waarde: een object tussen accolades, een array tussen blokhaken, een string, een getal, true, false of null. Binnen die waarden geldt:

  • Elke sleutel en elke string gebruikt rechte dubbele aanhalingstekens, zoals „name”.
  • Komma's scheiden de items, en na het laatste item in een object of array mag geen komma staan.
  • Getallen mogen geen plusteken vooraan hebben, en NaN, Infinity en undefined zijn geen geldige getallen of waarden.
  • Commentaar is helemaal niet toegestaan.
  • Sleutels moeten strings zijn, dus een sleutel zonder aanhalingstekens zoals name: is ongeldig.

Sommige parsers accepteren standaard een paar van deze fouten, en sommige tools accepteren JSON met commentaar als gemak. Die toegeeflijkheid verbergt het probleem tot het bestand bij een strengere lezer terechtkomt, dus schrijf de strikte vorm.

De foutmelding lezen

Parsers melden de eerste plek waar ze niet verder konden. De melding noemt het probleem en geeft een positie, meestal een regel en een kolom. Hier is een klein bestand met een overbodige komma in een array en nog een na de laatste eigenschap:

{
  "name": "Ada",
  "tags": ["a", "b",],
}

Python meldt dit als „Illegal trailing comma before end of array: line 3 column 20”. De formulering verschilt per tool, en sommige oudere parsers zeggen alleen „Unexpected token” met een tekenpositie. Ga naar de gemelde positie en kijk naar het teken ervoor. De echte fout is vaak een komma, aanhaling of accolade één of twee tekens eerder dan de gemelde plek.

Een paar andere meldingen uit Pythons parser, en wat ze meestal betekenen:

  • „Expecting property name enclosed in double quotes” bij '{'a': 1}' betekent een sleutel tussen enkele aanhalingstekens of een sleutel zonder aanhalingstekens.
  • „Expecting value” op een plek waar je een getal of string verwachtte, betekent vaak een krulaanhalingsteken, omdat de parser dat als onbekend teken ziet.
  • „Expecting ',' delimiter” betekent meestal een ontbrekende komma tussen twee items, of een commentaar midden in de data.

Krulaanhalingstekens en gekopieerde tekst

Krulaanhalingstekens zijn het meest verwarrend, omdat ze bijna hetzelfde eruitzien als rechte. Een JSON-bestand dat uit een tekstverwerker, een webpagina of een chatbericht is gekopieerd, kan krul-dubbele aanhalingstekens bevatten. Het bestand ziet er voor jou goed uit en faalt bij het parsen, omdat de parser “x” ziet als een onbekend teken in plaats van als scheidingsteken van een string.

Verborgen tekens veroorzaken hetzelfde soort probleem. Een spatie zonder onderbreking tussen twee waarden is voor de parser geen witruimte. Verborgen tekens verwijderen voordat je de structuur met de hand probeert te herstellen, en corrigeer daarna de aanhalingstekens. De gids over krulaanhalingstekens legt uit hoe je ze veilig recht maakt.

Enkele aanhalingstekens, commentaar en sleutels zonder aanhalingstekens

Veel ontwikkelaars schrijven JSON-achtige data in een taal die meer toestaat:

  • Enkele aanhalingstekens zijn geldig in JavaScript- en Python-literals, maar JSON vereist dubbele aanhalingstekens. Vervang {'a': 1} door {"a": 1}.
  • Commentaar zoals // of /* */ moet worden verwijderd. Heb je notities nodig, zet die dan in een apart veld, of gebruik een formaat dat is bedoeld voor configuratiebestanden.
  • Sleutels zonder aanhalingstekens komen vaak voor in JavaScript-objectliterals. Voeg de aanhalingstekens toe.
  • NaN en undefined horen niet bij JSON. Gebruik null voor een ontbrekende waarde, of een string als de waarde tekst is.

Wees voorzichtig met een blinde zoek-en-vervangactie. Alle enkele aanhalingstekens door dubbele vervangen breekt elke string die een apostrof bevat, zoals "Ada's notes". Bekijk eerst elke treffer in Zoeken en vervangen, zodat je ziet welke aanhalingstekens zouden veranderen.

Herstel de structuur stap voor stap

  1. Plak het bestand in JSON opmaken. Opmaken maakt de structuur zichtbaar, en de fout toont de regel en kolom. Klik daarna op Repareren, dat commentaar en komma's na het laatste item verwijdert. Enkele en krulaanhalingstekens past het niet aan, dus die moet je zelf corrigeren.
  2. Los alleen de eerste fout op en controleer opnieuw. Eén fout kan verderop meerdere fouten veroorzaken.
  3. Controleer of elke openingsaccolade of -blokhaak een sluitende heeft, en of de nesting is wat je bedoelt.
  4. Valideer het uiteindelijke bestand met de parser die je applicatie gebruikt, niet alleen met een webtool. Parsers verschillen licht.

Een bestand dat goed parset, is niet per se het bestand dat je bedoelde. Controleer het tegen een JSON Schema om een ontbrekend veld of een waarde van het verkeerde type op te sporen, of vergelijk twee JSON-documenten om te zien wat er tussen versies is veranderd.

Randgevallen

  • Overbodige komma's in gegenereerde bestanden. Sommige tools schrijven ze. Bouw je JSON met de hand als strings, gebruik dan de serialiser van je taal, die geldige uitvoer schrijft.
  • Dubbele sleutels. JSON staat ze toe, maar de meeste parsers houden alleen de laatste waarde. Dubbele sleutels zijn een bug die wacht om toe te slaan.
  • Grote getallen. Zeer grote gehele getallen kunnen in sommige parsers precisie verliezen, dus sla identificatoren op als string als ze langer zijn dan de parser exact kan weergeven. De gids over CSV naar JSON maakt hetzelfde punt over ID's.

Snelle antwoorden

Waarom faalt mijn JSON als het er correct uitziet?

De gebruikelijke oorzaken zijn een overbodige komma, enkele aanhalingstekens, commentaar of krulaanhalingstekens uit een document. Controleer de positie in de foutmelding en het teken ervoor.

Mag JSON commentaar bevatten?

Nee. De JSON-standaard staat geen commentaar toe. Verwijder het, of zet de notities in een eigen veld. De knop Repareren van de opmaker verwijdert ze voor je.

Wat gebruik ik in plaats van undefined in JSON?

Gebruik null wanneer een waarde bewust ontbreekt, of laat de sleutel helemaal weg. undefined is een JavaScript-waarde en heeft geen JSON-representatie.

Vertaald uit de Engels origineel met hulp van AI.

Reacties

    Nog geen reacties. Wees de eerste.

    Je waardering (optioneel)

    Je e-mail wordt nooit getoond of bewaard.

    Omslag van How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 pagina's over de menselijke, economische en strategische voordelen die schaars blijven wanneer AI het grootste deel van het cognitieve werk kan doen.

    $3.84Koop op GumroadIn het Engels