JSON Valideren: Volledige Handleiding met Voorbeelden
JSON (JavaScript Object Notation) is de ruggengraat van moderne web-API's, configuratiebestanden en data-uitwisseling. Maar ongeldige JSON kan je applicatie laten crashen, API-integraties breken en uren frustrerend debuggen veroorzaken. Deze handleiding neemt je mee door alles wat je moet weten over het valideren van JSON, van basis syntaxcontroles tot geavanceerde schemavalidatie met praktijkvoorbeelden.
Waarom JSON-validatie Belangrijk is
Ongeldige JSON is een van de meest voorkomende bronnen van bugs in webapplicaties. Een enkele verkeerd geplaatste komma, een ongequote sleutel of een trailing komma kan JSON.parse() een SyntaxError laten werpen die je hele data-pijplijn laat crashen. Validatie vangt deze fouten vroegtijdig op, voordat ze zich door je systeem verspreiden en downstream-fouten veroorzaken.
Voorbij syntaxcorrectheid zorgt validatie ervoor dat JSON-data aan verwachte structuren voldoet. Een API kan geldige JSON retourneren, maar met ontbrekende verplichte velden, verkeerde datatypen of waarden buiten acceptabele bereiken. Schemavalidatie adresseert deze structurele zorgen.
JSON Syntaxregels
Voordat we in validatietools duiken, is het essentieel om de regels te begrijpen die JSON geldig maken. JSON heeft een strikte syntax gedefinieerd door RFC 8259, en zelfs een enkele tekenovertreding maakt het hele document ongeldig.
Tekenreeksen Moeten Dubbele Aanhalingstekens Gebruiken
Alle tekenreekswaarden en objectsleutels moeten tussen dubbele aanhalingstekens staan. Enkele aanhalingstekens zijn geen geldige JSON-tekenreeksdelimiters, een veelgemaakte fout door ontwikkelaars die van JavaScript komen.
// Invalid - single quotes
{'name': 'Alice', 'age': 30}
// Valid - double quotes
{"name": "Alice", "age": 30}Objectsleutels Moeten Worden Gequote
In tegenstelling tot JavaScript object literals vereist JSON dat alle objectsleutels tussen dubbele aanhalingstekens staan. Ongequote sleutels zijn een syntaxfout.
// Invalid - unquoted keys
{name: "Alice", age: 30}
// Valid - quoted keys
{"name": "Alice", "age": 30}Geen Trailing Komma's
JSON staat geen komma toe na het laatste item in een object of array. Dit is nog een veelgemaakte fout, vooral bij het handmatig bewerken van JSON.
// Invalid - trailing comma
{
"name": "Alice",
"age": 30,
}
// Valid - no trailing comma
{
"name": "Alice",
"age": 30
}Geen Commentaar
JSON ondersteunt geen commentaar. Noch // enkelregelig commentaar, noch /* */ meerregelig commentaar is geldig in JSON. Als je documentatie nodig hebt, gebruik een apart bestand of een formaat zoals JSONC.
Veelvoorkomende JSON-validatiefouten
Als je de meest voorkomende fouten begrijpt, kun je ze sneller herkennen en oplossen. Hier zijn de fouten die je het vaakst zult tegenkomen:
- Onverwacht token: Meestal veroorzaakt door enkele aanhalingstekens, ongequote sleutels of trailing komma's. De foutmelding bevat de positie waar het parsen mislukte.
- Onverwacht einde van JSON-input: De JSON-tekenreeks is incompleet of leeg. Dit gebeurt vaak wanneer een netwerkrequest een lege response retourneert.
- Onverwacht niet-witruimteteken: Extra inhoud na de hoofd-JSON-waarde, zoals een tweede object dat niet in een array is gewikkeld.
- Ongeldig getal: Getallen met voorloopnullen (behalve 0 zelf), hexadecimale notatie of NaN / Infinity waarden zijn geen geldige JSON.
JSON Valideren in JavaScript
De eenvoudigste manier om JSON in JavaScript te valideren is door JSON.parse() in een try-catch-blok te wikkelen. Als de JSON ongeldig is, werpt de methode een SyntaxError .
function validateJSON(jsonString) {
try {
JSON.parse(jsonString);
return { valid: true };
} catch (error) {
return {
valid: false,
error: error.message
};
}
}
const result = validateJSON('{"name": "Alice"}');
console.log(result);
// { valid: true }
const badResult = validateJSON("{'name': 'Alice'}");
console.log(badResult);
// { valid: false, error: "Unexpected token '..." }JSON Valideren in Python
Python biedt de json module met json.loads() voor het parsen van JSON-tekenreeksen. Vergelijkbaar met JavaScript, ongeldige JSON roept een json.JSONDecodeError op met gedetailleerde positie-informatie.
import json
def validate_json(json_string):
try:
json.loads(json_string)
return {"valid": True}
except json.JSONDecodeError as e:
return {
"valid": False,
"error": str(e),
"line": e.lineno,
"column": e.colno
}
result = validate_json('{"name": "Alice"}')
print(result)
# {'valid': True}JSON Schema Validatie
Syntaxvalidatie zegt je alleen of JSON goed gevormd is. JSON Schema laat je de verwachte structuur definiëren en data ertegen valideren. Een schema specificeert verplichte velden, datatypen, waardebereiken, tekenreekspatronen en geneste objectstructuren.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["name", "email"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"email": { "type": "string", "format": "email" },
"age": { "type": "integer", "minimum": 0 }
}
}Populaire JSON Schema validators zijn Ajv voor JavaScript, jsonschema voor Python en json-schema-validator voor Java. Deze libraries valideren JSON-data tegen je schema en produceren gedetailleerde foutmeldingen voor elke overtreding.
Online JSON-validatietools
Als je een JSON-document snel wilt controleren zonder code te schrijven, zijn online validators de snelste optie. Ze bieden directe feedback met foutmarkering en regelnummers.
Best Practices voor JSON-validatie
- Valideer vroegtijdig: Controleer JSON op de grens van je systeem, zoals API-eindpunten en bestandsimportfuncties, voordat data je bedrijfslogica betreedt.
- Gebruik schemavalidatie: Voorbij syntax, valideer datastructuur met JSON Schema om ontbrekende velden, verkeerde typen en out-of-range waarden op te vangen.
- Bied duidelijke foutmeldingen: Als validatie faalt, voeg het veldpad, verwachte type en werkelijke waarde toe om gebruikers te helpen het probleem snel op te lossen.
- Valideer op zowel client als server: Client-side validatie biedt directe feedback, terwijl server-side validatie zorgt voor beveiliging en data-integriteit.
- Automatiseer validatie in CI/CD: Gebruik tools zoals ajv-cli of jsonschema om JSON-fixtures en configuratiebestanden in je build-pijplijn te valideren.
- Log validatiefouten: Registreer validatiefouten met context om patronen te identificeren en oorzaken in data-producers op te lossen.
Klaar om je JSON-data te valideren? Probeer onze gratis online JSON Validator met directe foutdetectie en gedetailleerde feedback.
Valideer JSON NuVeelgestelde Vragen
Wat is JSON-validatie?
JSON-validatie is het proces van controleren of een JSON-document aan de juiste syntaxregels voldoet en optioneel aan een gedefinieerd schema. Syntaxvalidatie zorgt dat de JSON goed gevormd is, terwijl schemavalidatie zorgt dat de datastructuur overeenkomt met verwachte typen, verplichte velden en waardebeperkingen.
Wat zijn de meest voorkomende JSON-fouten?
De meest voorkomende JSON-fouten zijn: trailing komma's na het laatste item, enkele aanhalingstekens in plaats van dubbele, ongequote objectsleutels, commentaar (niet toegestaan in JSON) en undefined of NaN waarden. Deze fouten zorgen dat JSON.parse() een SyntaxError werpt.
Hoe valideer ik JSON in JavaScript?
Gebruik JSON.parse() gewikkeld in een try-catch-blok. Als de JSON ongeldig is, werpt JSON.parse() een SyntaxError die je kunt opvangen en afhandelen. Voor schemavalidatie gebruik je libraries zoals Ajv die JSON Schema-validatie implementeren.
Wat is JSON Schema?
JSON Schema is een vocabulaire waarmee je JSON-documenten kunt annoteren en valideren. Het definieert de verwachte structuur, typen, verplichte velden, waardebereiken, tekenreekspatronen en geneste objectstructuren. Je kunt het gebruiken om te valideren dat JSON-data aan een specifiek formaat voldoet, voorbij basis syntaxcorrectheid.
Kan ik JSON online valideren?
Ja, online JSON-validators zoals de ToolHub JSON Validator laten je JSON-data plakken en direct zien of deze geldig is, met gedetailleerde foutmeldingen die de exacte regel en kolom tonen waar fouten optreden.