JSON Formatter & Validator: Guida Completa e Strumento Online
Guida completa al JSON Formatter: valida, formatta (prettify), minifica JSON. Visualizzazione ad albero, supporto JSON5, conversione YAML, esempi di codice e best practices.
Come Validare JSON Online: Guida Completa al JSON Formatter
JSON (JavaScript Object Notation) è il formato di scambio dati più utilizzato nel web moderno. Un JSON formatter è uno strumento essenziale per sviluppatori che permette di validare, formattare, minificare e manipolare dati JSON in modo efficiente.
Il nostro JSON Formatter online è gratuito, veloce e 100% privacy-first: elabora tutto nel browser senza inviare dati ai server. Ideale per API development, debugging, file di configurazione e data transformation.
Cos'è JSON e Perché è Importante
JSON (pronunciato "Jason") è un formato di dati leggero, human-readable e machine-parseable. Originato da JavaScript ma indipendente dal linguaggio, è diventato lo standard de facto per API REST e configurazioni moderne.
Caratteristiche Fondamentali
- Sintassi Semplice: Basata su due strutture: oggetti (key-value pairs) e array
- Text-Based: Formato testo puro, facilmente leggibile
- Language-Independent: Supportato da tutti i linguaggi di programmazione
- Lightweight: Più compatto di XML, meno overhead
- Strutturato: Schema gerarchico chiaro
Tipi di Dati JSON
JSON supporta sei tipi di dati:
- String:
"testo tra virgolette doppie" - Number:
42,3.14,-10,1.5e10 - Boolean:
trueofalse - Null:
null(valore nullo) - Object:
{ "key": "value" } - Array:
[1, 2, 3]
Esempio JSON Completo:
{
"user": {
"id": 12345,
"name": "Mario Rossi",
"email": "mario@example.com",
"active": true,
"roles": ["admin", "editor"],
"metadata": null
}
}
Funzionalità del Nostro JSON Formatter
1. Validazione JSON
Verifica che il JSON sia sintatticamente corretto:
- ✅ Parentesi bilanciate
{}e[] - ✅ Virgolette doppie per stringhe e chiavi
- ✅ Virgole corrette tra elementi
- ✅ Nessuna virgola finale (trailing comma)
- ✅ Valori di tipo corretto
Errori Comuni Rilevati:
// ❌ ERRATO - Single quotes
{ 'name': 'Mario' }
// ✅ CORRETTO - Double quotes
{ "name": "Mario" }
// ❌ ERRATO - Trailing comma
{ "name": "Mario", }
// ✅ CORRETTO - No trailing comma
{ "name": "Mario" }
2. Prettify / Beautify (Formattazione)
Trasforma JSON minificato in formato leggibile con indentazione:
// Prima (minified)
{"user":{"name":"Mario","age":30,"tags":["dev","admin"]}}
// Dopo (prettified)
{
"user": {
"name": "Mario",
"age": 30,
"tags": [
"dev",
"admin"
]
}
}
Opzioni di formattazione:
- Indentazione: 2 o 4 spazi, oppure tab
- Ordine chiavi: alfabetico o originale
- Lunghezza massima riga
3. Minify / Compress
Rimuove spazi, newline e indentazione per ridurre dimensioni:
// Prima (formatted - 80 bytes)
{
"name": "Mario",
"age": 30
}
// Dopo (minified - 28 bytes)
{"name":"Mario","age":30}
Riduzione tipica: 40-60% per JSON formattati
4. Tree View (Vista Albero)
Visualizzazione gerarchica espandibile/collassabile:
- Navigazione facilitata per JSON complessi
- Espandi/collassa nodi
- Conta elementi in array e oggetti
- Syntax highlighting per tipi di dati
5. JSON Comparison (Confronto)
Confronta due JSON per trovare differenze:
- Evidenzia chiavi aggiunte (verde)
- Evidenzia chiavi rimosse (rosso)
- Evidenzia valori modificati (giallo)
- Side-by-side o unified diff
6. Conversione YAML ↔ JSON
Converti bidirezionalmente tra JSON e YAML:
# YAML
user:
name: Mario
age: 30
tags:
- dev
- admin
# JSON equivalente
{
"user": {
"name": "Mario",
"age": 30,
"tags": ["dev", "admin"]
}
}
Casi d'Uso Pratici
1. API Development e Testing
Valida e formatta response/request JSON durante sviluppo API:
// API Response da validare
POST /api/users
{
"name": "Mario Rossi",
"email": "mario@example.com",
"preferences": {
"theme": "dark",
"notifications": true
}
}
Workflow tipico:
- Copia response da Postman/Insomnia/curl
- Incolla nel formatter per validare
- Prettify per leggibilità
- Identifica errori di struttura
2. Configuration Files
Gestisci file di configurazione JSON (package.json, tsconfig.json, etc):
// tsconfig.json
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
3. Database Export/Import
Valida JSON prima di import in database NoSQL (MongoDB, CouchDB):
// MongoDB document
{
"_id": "507f1f77bcf86cd799439011",
"user_id": 12345,
"created_at": { "$date": "2025-01-01T00:00:00Z" },
"items": [
{ "product_id": 1, "quantity": 2 },
{ "product_id": 5, "quantity": 1 }
]
}
4. Logging e Debugging
Formatta log JSON per troubleshooting:
// Application log (minified)
{"level":"error","timestamp":"2025-01-01T10:30:00Z","message":"DB connection failed","error":{"code":"ECONNREFUSED","host":"localhost","port":5432}}
// Formatted per analisi
{
"level": "error",
"timestamp": "2025-01-01T10:30:00Z",
"message": "DB connection failed",
"error": {
"code": "ECONNREFUSED",
"host": "localhost",
"port": 5432
}
}
5. Data Transformation
Manipola strutture JSON per ETL e data pipeline:
- Estrai subset di dati
- Ristruttura gerarchie
- Converti formati (JSON → CSV, JSON → XML)
- Merge di multiple sorgenti JSON
6. Webhook Payloads
Valida payload ricevuti da webhook (GitHub, Stripe, Shopify):
// GitHub webhook payload
{
"action": "opened",
"number": 42,
"pull_request": {
"id": 1234567,
"title": "Fix: bug in authentication",
"user": {
"login": "developer",
"id": 123
},
"head": {
"ref": "fix-auth-bug",
"sha": "a7f3c21b8e9d4f2a"
}
}
}
JSON vs. Altri Formati
| Caratteristica | JSON | XML | YAML | CSV |
|---|---|---|---|---|
| Leggibilità | Alta ✅ | Media | Molto Alta ✅✅ | Bassa |
| Dimensione | Compatto ✅ | Verbose ❌ | Compatto ✅ | Molto Compatto ✅✅ |
| Parsing Speed | Veloce ✅ | Lento | Medio | Velocissimo ✅✅ |
| Gerarchia | Sì ✅ | Sì ✅ | Sì ✅ | No ❌ |
| Attributi | No | Sì ✅ | Anchor/Alias | No |
| Commenti | No ❌ | Sì ✅ | Sì ✅ | No ❌ |
| Uso Principale | API, web | SOAP, legacy | Config, K8s | Dati tabulari |
Quando Usare Cosa
- JSON: API REST, web services, data exchange standard
- XML: SOAP APIs, documenti complessi con schema, enterprise systems
- YAML: Configuration files (Docker, K8s, CI/CD), human-readable configs
- CSV: Data export, spreadsheets, dataset semplici
Errori JSON Comuni e Come Risolverli
1. Unexpected token
Errore: SyntaxError: Unexpected token } in JSON at position 45
Causa: Virgola finale (trailing comma)
// ❌ ERRATO
{
"name": "Mario",
"age": 30, ← Trailing comma
}
// ✅ CORRETTO
{
"name": "Mario",
"age": 30
}
2. Unexpected end of JSON input
Causa: JSON incompleto o parentesi non chiuse
// ❌ ERRATO - Manca }
{
"name": "Mario",
"address": {
"city": "Roma"
// ✅ CORRETTO
{
"name": "Mario",
"address": {
"city": "Roma"
}
}
3. Invalid character
Causa: Single quotes invece di double quotes
// ❌ ERRATO
{ 'name': 'Mario' }
// ✅ CORRETTO
{ "name": "Mario" }
4. Duplicate keys
Causa: Stessa chiave ripetuta nell'oggetto
// ❌ ERRATO - "name" duplicato
{
"name": "Mario",
"age": 30,
"name": "Luigi" ← Sovrascrive il primo
}
// ✅ CORRETTO
{
"firstName": "Mario",
"lastName": "Luigi",
"age": 30
}
Best Practices JSON
✅ Do's
- Usa nomi descrittivi:
"user_id"invece di"uid" - Convenzione naming: snake_case o camelCase, ma consistente
- Valida sempre: Prima di salvare o inviare
- Versiona API: Include version field per backward compatibility
- Usa null: Per valori assenti, non stringhe vuote
❌ Don'ts
- NON includere funzioni: JSON non supporta codice eseguibile
- NON usare commenti: JSON non li supporta (usa JSONC o JSON5 se necessario)
- NON esporre dati sensibili: Password, tokens, secrets
- NON duplicare chiavi: Comportamento non definito
- NON usare valori undefined: Usa
nullinvece
Esempi di Codice
JavaScript/Node.js
// Parse JSON string
const jsonString = '{"name":"Mario","age":30}';
const obj = JSON.parse(jsonString);
console.log(obj.name); // Mario
// Stringify object
const user = { name: "Mario", age: 30 };
const json = JSON.stringify(user);
console.log(json); // {"name":"Mario","age":30}
// Prettify
const pretty = JSON.stringify(user, null, 2);
// Validazione con try-catch
try {
JSON.parse(jsonString);
console.log("✅ JSON valido");
} catch (error) {
console.error("❌ JSON non valido:", error.message);
}
Python
import json
# Parse JSON
json_string = '{"name":"Mario","age":30}'
data = json.loads(json_string)
print(data['name']) # Mario
# Generate JSON
user = {"name": "Mario", "age": 30}
json_str = json.dumps(user)
# Prettify
pretty = json.dumps(user, indent=2, ensure_ascii=False)
# Validate
try:
json.loads(json_string)
print("✅ JSON valido")
except json.JSONDecodeError as e:
print(f"❌ Errore: {e}")
PHP
// Parse JSON
$jsonString = '{"name":"Mario","age":30}';
$data = json_decode($jsonString);
echo $data->name; // Mario
// Generate JSON
$user = ["name" => "Mario", "age" => 30];
$json = json_encode($user);
// Prettify
$pretty = json_encode($user, JSON_PRETTY_PRINT);
// Validate
json_decode($jsonString);
if (json_last_error() === JSON_ERROR_NONE) {
echo "✅ JSON valido";
} else {
echo "❌ Errore: " . json_last_error_msg();
}
Domande Frequenti (FAQ)
Posso aggiungere commenti in JSON?
No, JSON standard non supporta commenti. Però esistono estensioni come JSONC (JSON with Comments, usato da VS Code) e JSON5 che permettono commenti. Per configurazioni, considera YAML.
Qual è la dimensione massima di un file JSON?
Non c'è limite tecnico, ma performance dipendono dal parser e memoria. Per JSON >10MB considera streaming parser o formati alternativi (Protobuf, Avro). Il nostro tool gestisce bene file fino a 5MB.
JSON è case-sensitive?
Sì, le chiavi sono case-sensitive. "Name" e "name" sono chiavi diverse.
Come gestisco date in JSON?
JSON non ha tipo Date nativo. Usa string in formato ISO 8601: "2025-01-01T10:30:00Z". Oppure timestamp Unix: 1704106200 (number).
JSON supporta riferimenti circolari?
No, JSON non può rappresentare strutture circolari. Se provi a serializzare un oggetto con riferimenti circolari otterrai errore "Converting circular structure to JSON".
Posso usare undefined in JSON?
No, JSON supporta solo null. undefined viene ignorato durante serializzazione: JSON.stringify({a: undefined}) → {}.
Risorse Correlate
Esplora altri strumenti THEJORD per lavorare con JSON:
- JSON Schema Converter: Genera schema di validazione da JSON automaticamente
- Diff Checker: Confronta due JSON per trovare differenze
- Base64 Encoder: Codifica JSON in Base64 per trasporto
- RegEx Tester: Estrai dati da JSON con regex