ToolHub
View All Posts

Come validare JSON: guida completa con esempi

JSON (JavaScript Object Notation) è la pietra angolare delle moderne API web, dei file di configurazione e dello scambio di dati. Ma JSON non valido può causare crash dell'applicazione, fallimenti nell'integrazione API e ore di debug frustrante. Questa guida ti accompagnerà attraverso tutto ciò che devi sapere sulla validazione di JSON, dai controlli sintattici di base alla validazione Schema avanzata con esempi reali.

Perché la validazione JSON è importante

JSON non valido è una delle fonti più comuni di errori nelle applicazioni web. Una virgola fuori posto, una chiave senza virgolette o una virgola finale possono causare il lancio di un SyntaxError da JSON.parse(), facendo crollare l'intera pipeline di dati. La validazione cattura questi errori precocemente, prima che si propaghino nel sistema e causino guasti a valle.

Oltre alla correttezza sintattica, la validazione garantisce che i dati JSON siano conformi alla struttura prevista. Un'API potrebbe restituire JSON valido ma con campi obbligatori mancanti, tipi di dati errati o valori fuori dall'intervallo accettabile. La validazione Schema risolve questi problemi strutturali.

Regole di sintassi JSON

Prima di approfondire gli strumenti di validazione, è fondamentale comprendere le regole che rendono JSON valido. JSON ha una sintassi rigorosa definita da RFC 8259, e anche una singola violazione di un carattere può rendere l'intero documento non valido.

Le stringhe devono usare le virgolette doppie

Tutti i valori stringa e le chiavi degli oggetti devono essere racchiusi tra virgolette doppie. Le virgolette singole non sono delimitatori di stringa JSON validi, un errore comune per gli sviluppatori che provengono da JavaScript.

// Invalid - single quotes
{'name': 'Alice', 'age': 30}

// Valid - double quotes
{"name": "Alice", "age": 30}

Le chiavi degli oggetti devono essere tra virgolette

A differenza dei letterali oggetto JavaScript, JSON richiede che tutte le chiavi degli oggetti siano tra virgolette doppie. Le chiavi senza virgolette sono un errore di sintassi.

// Invalid - unquoted keys
{name: "Alice", age: 30}

// Valid - quoted keys
{"name": "Alice", "age": 30}

Nessuna virgola finale consentita

JSON non consente virgole dopo l'ultimo elemento di un oggetto o array. Questo è un altro errore comune, specialmente quando si modifica JSON manualmente.

// Invalid - trailing comma
{
  "name": "Alice",
  "age": 30,
}

// Valid - no trailing comma
{
  "name": "Alice",
  "age": 30
}

Nessun supporto per i commenti

JSON non supporta i commenti. Sia i commenti a riga singola // che i commenti multilinea /* */ non sono validi in JSON. Se hai bisogno di documentazione, usa un file separato o formati come JSONC.

Errori comuni di validazione JSON

Conoscere gli errori più comuni ti aiuta a individuarli e correggerli rapidamente. Ecco gli errori che incontrerai più spesso:

Validare JSON in JavaScript

Il modo più semplice per validare JSON in JavaScript è avvolgere JSON.parse() in un blocco try-catch. Se JSON non è valido, il metodo lancia un 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 '..." }

Validare JSON in Python

Python fornisce il modulo json, che include json.loads() per analizzare le stringhe JSON. Similmente a JavaScript, JSON non valido solleva un json.JSONDecodeError con informazioni dettagliate sulla posizione.

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}

Validazione JSON Schema

La validazione sintattica ti dice solo se JSON è ben formato. JSON Schema ti consente di definire la struttura prevista e validare i dati rispetto ad essa. Lo Schema specifica campi obbligatori, tipi di dati, intervalli di valori, pattern di stringhe e strutture di oggetti annidati.

{
  "$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 }
  }
}

I validatori JSON Schema più popolari includono Ajv per JavaScript, jsonschema per Python e json-schema-validator per Java. Queste librerie validano i dati JSON rispetto al tuo Schema e generano messaggi di errore dettagliati per ogni violazione.

Strumenti di validazione JSON online

Quando hai bisogno di controllare rapidamente un documento JSON senza scrivere codice, i validatori online sono l'opzione più veloce. Forniscono feedback immediato con evidenziazione degli errori e numeri di riga.

Prova il validatore JSON di ToolHub per convalidare istantaneamente i tuoi dati JSON. Fornisce messaggi di errore dettagliati con numeri di riga e colonna, validazione in tempo reale durante la digitazione e formattazione con un clic.

Migliori pratiche per la validazione JSON

Pronto a validare i tuoi dati JSON? Prova il nostro validatore JSON online gratuito con rilevamento istantaneo degli errori e feedback dettagliato.

Valida JSON ora

Domande frequenti

Cos'è la validazione JSON?

La validazione JSON è il processo di verifica che un documento JSON sia conforme alle regole di sintassi corrette e, opzionalmente, a uno Schema definito. La validazione sintattica garantisce che JSON sia ben formato, mentre la validazione Schema garantisce che la struttura dei dati corrisponda ai tipi, ai campi obbligatori e ai vincoli di valore previsti.

Quali sono gli errori JSON più comuni?

Gli errori JSON più comuni includono: virgola finale dopo l'ultimo elemento, uso di virgolette singole invece di virgolette doppie, chiavi oggetto senza virgolette, commenti (non consentiti in JSON) e valori undefined o NaN. Questi errori causano il lancio di un SyntaxError da JSON.parse().

Come validare JSON in JavaScript?

Usa JSON.parse() avvolto in un blocco try-catch. Se JSON non è valido, JSON.parse() lancia un SyntaxError che puoi catturare e gestire. Per la validazione Schema, usa librerie come Ajv che implementano la validazione JSON Schema.

Cos'è JSON Schema?

JSON Schema è un vocabolario che ti consente di annotare e convalidare documenti JSON. Definisce la struttura, i tipi, i campi obbligatori, gli intervalli di valori, i pattern di stringhe e le strutture di oggetti annidati previsti. Puoi usarlo per convalidare che i dati JSON siano conformi a un formato specifico oltre la correttezza sintattica di base.

Posso validare JSON online?

Sì, strumenti di validazione JSON online come il validatore JSON di ToolHub ti consentono di incollare dati JSON e vedere immediatamente se sono validi, con messaggi di errore dettagliati che mostrano l'esatta riga e colonna dove si verifica l'errore.