Naar de inhoud
MaxyTools

JSON: opmaken, valideren, minificeren en naar CSV omzetten zonder fouten

Bijgewerkt op · 3 min leestijd

· Bijgewerkt op

JSON is het meest verspreide uitwisselingsformaat van het web: API-antwoorden, configuratiebestanden, gegevensexports. Het is leesbaar voor mensen, maar ook zeer streng, en één vergeten of overbodige komma volstaat om het voor een programma onleesbaar te maken. Deze gids legt de regels uit, hoe je een fout diagnosticeert en hoe je van het ene formaat naar het andere gaat zonder de gegevens te beschadigen.

De regels die je moet kennen

Een JSON-document bevat objecten ({"sleutel": waarde}), arrays ([1, 2, 3]), strings, getallen, true, false en null. Niets anders. Deze regels verklaren bijna elke fout:

  • Sleutels en strings gebruiken dubbele aanhalingstekens. Enkele aanhalingstekens ('a') zijn ongeldig.
  • Geen komma na het laatste element van een object of array.
  • Geen commentaar. Noch // noch /* */ bestaat in JSON.
  • Geen speciale waarden zoals NaN, Infinity of undefined.
  • Sleutels moeten tussen aanhalingstekens staan, anders dan bij JavaScript-objecten.

Opmaken en valideren, stap voor stap

  1. Plak de JSON in JSON formatteren of sleep een bestand erin (maximaal 25 miljoen tekens). Het wordt meteen ingesprongen, met 2 spaties, 4 spaties of een tab, en sleutels kunnen op elk niveau alfabetisch worden gesorteerd.
  2. Blader door het resultaat als gekleurde code of als inklapbare boom; bij een groot document opent de boom alleen de nuttige niveaus en toont hij lange lijsten in porties van 100.
  3. Lees bij een fout de melding: regel, kolom, fragment met een dakje en de waarschijnlijke oorzaak (extra komma, enkele aanhalingstekens, sleutel zonder aanhalingstekens, commentaar, NaN).

Waarom grote getallen een valkuil zijn

JavaScript stelt alle getallen voor als drijvende-kommagetallen met dubbele precisie: voorbij 9.007.199.254.740.991 (2⁵³ − 1) worden gehele getallen niet meer exact weergegeven. De identificatiecode 12345678901234567890, door een JavaScript-programma gelezen en weer geschreven, wordt 12345678901234567000. De meeste tools maken die omweg zonder het te zeggen. De onze kopiëren getallen zoals je ze schreef: een code van 20 cijfers, 92.50 of 1E5 veranderen niet. Als je gegevens lange identificatiecodes bevatten, kun je ze beter als strings doorgeven.

Veelgemaakte fouten

  • Een JavaScript-object kopiëren (sleutels zonder aanhalingstekens, enkele aanhalingstekens) in de veronderstelling dat het JSON is.
  • Een komma na het laatste element laten staan, een gewoonte uit andere talen.
  • JSON met commentaar uit een configuratiebestand (JSONC) plakken in een tool die strikte JSON eist.
  • Identificatiecodes van meer dan 15 cijfers omzetten met een tool die ze afrondt.

Eerlijke beperkingen

  • Maximaal 25 miljoen tekens: gebruik daarboven een opdrachtregeltool.
  • Dubbele sleutels worden gesignaleerd en behouden, maar hun betekenis verschilt tussen lezers: vermijd ze.
  • Een CSV is een plat formaat: het omzetten van diep geneste JSON verliest leesbaarheid.

Veelgestelde vragen

Waarom wordt mijn JSON geweigerd terwijl hij in JavaScript werkt?

Omdat een JavaScript-object sleutels zonder aanhalingstekens, enkele aanhalingstekens en komma's aan het eind accepteert, wat JSON verbiedt.

Worden mijn gegevens ergens naartoe gestuurd?

Nee. Opmaken, valideren en omzetten draaien in je browser.

Hoe voorkom ik dat Excel een verborgen formule in een CSV uitvoert?

Onze omzetter zet een apostrof voor elke tekst die met =, +, - of @ begint. Echte getallen blijven ongemoeid.

Kan ik commentaar in JSON zetten?

Nee. Gebruik voor configuratie met commentaar YAML of een afgeleid formaat zoals JSONC, dat strikte JSON-tools weigeren.

Welke inspringing moet ik kiezen?

2 spaties is de meest verbreide conventie voor het web; 4 spaties of een tab komen ook veel voor. Het is een kwestie van teamafspraak; de betekenis van de gegevens verandert niet.

In deze gids genoemde tools

Meer gidsen

Deze gidsen worden geschreven door het MaxyTools-team, op basis van hoe onze tools echt werken. De cijfers zijn berekeningen die je zelf kunt nadoen of ordes van grootte die als zodanig zijn aangegeven. Een fout gezien? Schrijf ons via de pagina Contact.