Valida un JSON e trova l’errore
Controlli un documento di dati rispetto alla struttura che deve rispettare e veda dove si rompe: ogni problema arriva con il percorso fino al valore errato e la regola violata. Un'email presente e un'età di 36 scritta come numero passano senza errori. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Individua virgole di troppo, virgolette mancanti e parentesi non chiuse, indicando riga e posizione.
Perché un semplice «non valido» non basta
Un validatore che risponde solo sì o no lascia a lei il lavoro vero: leggere un documento con decine di dati annidati per trovare l'unico sbagliato. Questo funziona al contrario. Il verdetto è la parte facile; ciò che conta è dove il documento fallisce e perché. Ogni problema torna con il percorso fino al valore errato, dall'inizio del documento, e la regola precisa che viola, così chi sviluppa o chi segue l'assistenza va dritto alla correzione invece di cercare a occhio.
Cosa può imporre la struttura attesa e le sviste frequenti
La struttura attesa è a sua volta un piccolo documento. Descrive non solo come sono organizzati i suoi dati, ma anche i loro limiti: quali dati sono obbligatori, quale modello deve seguire un testo, entro quale intervallo deve restare un numero, quali valori accetta un elenco chiuso e come devono essere gli oggetti annidati. Lo standard che la definisce è pubblicato in bozze successive dal 2010 e la versione attuale è la 2020-12. La svista più frequente è tralasciare la struttura attesa e credere che il contenuto sia stato controllato: senza di essa si verifica soltanto che il documento sia ben formato. L'età dell'esempio passa perché è scritta come numero, esattamente ciò che chiede la sua regola.
Cosa controlla davvero
Se tutto torna, ti dice che il file è valido; altrimenti si ferma al primo errore e te lo mostra. È il controllo che fa un programma prima di leggere i dati: se lo passi qui, non ti troverai un errore misterioso più avanti.
L’errore, con riga e posizione
La forza dello strumento è dirti dove guardare. Così correggi in pochi secondi anche un file lungo, senza rileggerlo tutto a occhio.
Casi d'uso
Controllo prima dell’import
Prima di caricare un file di configurazione, lo validi qui: se è a posto procedi tranquillo, altrimenti sai subito cosa correggere.
Domande frequenti
Mi dice dove si trova l’errore?
Sì: indica la riga e la posizione del primo problema — virgola finale, virgoletta o parentesi mancante — così lo correggi subito, anche in un file lungo.
È gratis?
Nel browser sì, senza registrazione e senza limiti.
Cosa viene controllato se non indico la struttura attesa?
Solo che il documento sia ben formato, cioè scritto correttamente e leggibile. Le regole sul contenuto, come i dati obbligatori o il tipo di ogni valore, vengono verificate soltanto quando lei fornisce la struttura attesa.
Che tipo di regole può descrivere la struttura attesa?
Quali dati sono obbligatori, quale modello deve seguire un testo, entro quale intervallo deve stare un numero, quali valori sono ammessi da un elenco chiuso e come devono essere gli oggetti annidati dentro altri oggetti.
Come appare un risultato valido?
Come un verdetto di validità con l'elenco dei problemi vuoto. Nell'esempio il documento contiene l'email obbligatoria e un'età di 36 salvata come numero, quindi passa senza nulla da segnalare.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/data/json-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"json":{"email":"a@b.c"}}'const res = await fetch("https://api.kit.forhosting.com/data/json-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"json": {
"email": "a@b.c"
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/json-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"json": {
"email": "a@b.c"
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/json-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"json":{"email":"a@b.c"}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"json":{"email":"a@b.c"}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/json-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"json": {
"email": "a@b.c"
}
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.json_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Uno strumento che controlla se un testo JSON è valido e, quando non lo è, ti dice esattamente dov’è il problema. Incolli o carichi il JSON e in un istante sai se è a posto, tutto nel tuo browser.
Cosa controlla davvero
Il KIT verifica la sintassi del JSON secondo lo standard: chiavi tra virgolette doppie, valori del tipo giusto, parentesi e graffe bilanciate, nessuna virgola finale.
L’errore, con riga e posizione
Invece di un generico “JSON non valido”, indica la riga e il punto dove la struttura si rompe: una virgola dopo l’ultimo elemento, una virgoletta curva copiata da un documento, una parentesi mai chiusa.
Sintassi, non contenuto
Un file può essere validissimo e avere comunque i dati sbagliati per il tuo scopo. Attenzione a cosa fa e cosa non fa: controlla che il JSON sia scritto correttamente, non che i campi abbiano i nomi o i valori che ti aspetti. Per verificare la struttura dei campi serve un controllo di schema, che è un’altra cosa; qui parliamo solo di forma valida.
Casi di integrazione
Debug di una risposta API
Uno sviluppatore riceve una risposta che l’app rifiuta. Incolla il JSON, scopre una virgola finale alla riga 42 e risolve senza impazzire tra i log.
JSON copiato da un documento
Un blocco JSON copiato da un PDF ha le virgolette “curve” al posto di quelle dritte. Il validatore le individua e ti indica dove sostituirle.
Domande tecniche
Controlla anche che i campi siano quelli giusti?
No: verifica la sintassi, cioè che il JSON sia scritto correttamente. Non controlla che i nomi o i valori dei campi rispettino uno schema: quello è un altro tipo di verifica.
Riconosce le virgolette “curve” copiate da un testo?
Sì: le virgolette tipografiche non sono valide in JSON e vengono segnalate come errore, con la posizione esatta dove sostituirle con quelle dritte.
Il mio JSON viene inviato a un server?
No: la validazione avviene nel browser, sul tuo dispositivo. Puoi controllare anche dati riservati in tutta tranquillità.
Posso incollare il testo invece del file?
Sì. Incolli il JSON nella pagina oppure carichi un file fino a 25 MB, anche dal telefono.