Valida il JSON prima delle richieste API
Una validazione rapida prima di inviare una richiesta API separa nettamente i problemi di sintassi JSON dagli errori di autenticazione, schema e backend.
Perché validare prima di inviare
Quando una richiesta API fallisce, il messaggio può puntare ad autenticazione, permessi, validazione di schema o JSON malformato. Validare il body JSON prima elimina un’intera classe di fallimenti prima che la richiesta raggiunga il server. Inoltre rende più facili da rivedere comandi cURL copiati, body Postman, sample di webhook e test di integrazione.
Controlli di sintassi da eseguire
Una passata di validazione JSON strict dovrebbe confermare che il body parsi come JSON e che l’output formattato corrisponda a quello che intendi inviare.
- Ogni stringa e ogni chiave di oggetto usa virgolette doppie
- Niente commenti né virgole finali
- I booleani sono true o false, non True o False
- I valori assenti sono null o chiavi omesse, non undefined
- Il valore di livello superiore corrisponde a quanto si aspetta l’endpoint
Anche gli header contano
Un body JSON valido può comunque fallire se la richiesta non dichiara il Content-Type corretto. Per la maggior parte delle API JSON invia Content-Type: application/json. Se l’endpoint controlla anche Accept, aggiungi Accept: application/json per far concordare client e server sul formato.
Body di richiesta errato
{ userId: 42, active: True, tags: ['beta',], }
Body di richiesta corretto
{ "userId": 42, "active": true, "tags": ["beta"] }
Dopo la validazione sintattica
La validazione sintattica dimostra solo che il documento è parsabile. Per richieste di produzione controlla anche lo schema: campi obbligatori, campi sconosciuti, tipi dei valori, lunghezze degli array, valori enum, stringhe di data e se gli identificatori numerici devono essere numeri o stringhe.
Suggerimento di debug
Se il server continua a rifiutare un JSON valido, confronta il body formattato con un esempio noto. Un diff JSON semantico trova le vere differenze di valori ignorando l’ordine delle chiavi, particolarmente utile quando i payload sono generati da strumenti diversi.
Un piccolo wrapper fetch + Ajv
Valida il corpo della risposta contro uno schema noto prima di consegnarlo al codice applicativo. Compila lo schema una sola volta al caricamento del modulo e proteggi ogni chiamata: const validate = ajv.compile(schema); const res = await fetch(url); const data = await res.json(); if (!validate(data)) throw new Error("Schema mismatch: " + ajv.errorsText(validate.errors)); return data; — così le rotture di contratto a monte emergono al confine, non cinque livelli più in basso.
Guide alla riparazione di JSON
Hub tematici
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
Guide specifiche
- Come decodificare stringhe Base64 (e payload JWT)
- Codifica URL: codifica in percentuale parametri di query e percorsi
- Convertire YAML in JSON (ed evitare errori di indentazione)
- Convertire JSON in CSV: appiattire un array di oggetti
- Convertire JSON in XML: radice, attributi e array
- Fare escape del JSON come letterale stringa (e decodificare JSON doppiamente codificato)
- Correggere le virgole finali nel JSON
- Correggere gli apici singoli nel JSON
- Correggere chiavi senza virgolette nel JSON
- Riparare il JSON prodotto da un LLM
- Correggere l’errore di parse JSON: Expected Property Name
- JSON vs letterale di oggetto JavaScript
- Formattatore JSON vs JSON Repair
- Correggere errori JSON Unexpected Token
- Convertitore JSON in oggetto JavaScript