Riparare JSON

Strumento online gratuito per riparare JSON. Rileva e corregge automaticamente virgole finali, apici singoli, chiavi senza apici, parentesi non chiuse, commenti e wrapper Markdown. Pensato per la pulizia dell'output IA e recupero di JSON troncato. Interamente locale nel browser.

Raccomandazioni correlate

Cos'è Riparare JSON (JSON Repair)?

Riparare JSON (JSON Repair) è il processo di prendere un testo JSON non standard che un parser JSON stretto non può consumare a causa di errori di sintassi, e ripristinarlo automaticamente in una stringa JSON valida conforme a RFC 8259. A differenza del Formattatore JSON (Beautify), Riparare JSON non gestisce differenze di formato ma errori strutturali: virgole finali, apici singoli, apici mancanti, parentesi non chiuse, wrapper Markdown, commenti - tutti fanno sì che JSON.parse() lanci SyntaxError, ma sono estremamente comuni nello sviluppo reale.

Le fonti di JSON 'non standard' nei progetti ingegneristici reali sono altamente concentrate: ① Copiando da LLM come ChatGPT / Claude / Gemini, l'output è spesso avvolto in blocchi di codice Markdown (```json ... ```) o accompagnato da testo esplicativo; ② Copiando da console.log() di un oggetto JavaScript possono essere incluse virgole finali e apici singoli; ③ I file di configurazione usano spesso la sintassi estesa JSON5 / JSONC (che permette commenti, chiavi senza apici, stringhe multi-linea, ecc.); ④ Le risposte in streaming o i log troncati possono rompere il JSON a metà flusso, mancando il `}` o `"` di chiusura. Uno strumento Riparare JSON scansiona il testo, identifica questi problemi tipici e ripristina il contenuto in JSON standard con il principio di 'minima intrusione' preservando il più possibile la semantica dei dati originali.

A livello di implementazione, Riparare JSON si compone tipicamente di due fasi: ① Analisi tollerante (tolerant parse) - uso di uno scanner basato su automa a stati anziché espressioni regolari per elaborare il flusso di caratteri passo dopo passo, distinguendo i caratteri di sintassi 'all'interno delle stringhe' da 'all'esterno'; ② Output canonico (canonical output) - rigenerazione del risultato con `JSON.parse` + `JSON.stringify`, garantendo che l'output sia 100% valido per qualsiasi parser stretto a valle. Lo strumento Riparare JSON di GeekFormat completa l'intero flusso di riparazione localmente nel browser, senza inviare il contenuto originale a nessun server, adatto per elaborare risposte API sensibili, file di configurazione interni e output di modelli IA.

Casi d'uso

  • Pulizia output IA/LLM: converti con un clic il JSON di ChatGPT/Claude avvolto in Markdown, con testo esplicativo e virgole finali in JSON standard
  • Debug e risoluzione problemi di interfaccia: quando le risposte API vengono troncate da problemi di gateway o rete, completa rapidamente parentesi e stringhe per localizzare la struttura dati originale
  • Letterali di oggetto JavaScript copiati dalla console: soluzione unica per apici singoli, virgole finali e chiavi senza apici
  • Pulizia file di configurazione: rimuovi i commenti da JSON5/JSONC per ottenere JSON standard, pronto per il consumo unificato a valle
  • Riparazione dati di log e appunti: standardizza rapidamente snippet JSON contenenti commenti, spazi speciali o troncamenti
  • Migrazione dati e pre-elaborazione di script: aggiungi un passaggio di riparazione nella pipeline di migrazione dati per evitare che pochi JSON invalidi blocchino un intero lotto ETL

Come utilizzare

  1. Incolla il contenuto JSON con errori, avvolto in Markdown o troncato nella casella di input sinistra, o fai clic su 'Esempio' per caricare un JSON rotto tipico, o carica un file .json/.txt
  2. Lo strumento rileva e ripara automaticamente i problemi di sintassi comuni; l'area di output destra mostra il JSON standard formattato e il conteggio di ogni classe di problema riparato
  3. Se rimangono messaggi di errore rossi, puoi modificare manualmente l'input e riattivare la riparazione (Mac: ⌘+Shift+R, Windows: Ctrl+Shift+R)
  4. Dopo aver confermato che la struttura è corretta, fai clic su 'Copia' per mettere il risultato riparato negli appunti, o fai clic su 'Scarica' per salvare come repaired.json per ulteriore formattazione, validazione, ecc.

Funzionalità

  • Copre 7 errori di sintassi comuni: virgole finali, apici singoli, chiavi senza apici, stringhe non chiuse, commenti, parentesi mancanti, wrapper di blocchi di codice Markdown
  • Ottimizzato per la pulizia dell'output IA: rimuove automaticamente wrapper ```json e testo esplicativo circostante; riconosce output tipici di ChatGPT, Claude, Gemini e altri LLM
  • Compatibile JSON5/JSONC: analizza sintassi estesa inclusi commenti, apici laschi e spazi speciali (es. caratteri Unicode invisibili)
  • Completamento intelligente di JSON troncato: gestisce risposte API troncate e graffe di chiusura mancanti completando automaticamente parentesi e apici mancanti
  • Visualizzazione dei problemi riparati: auto-statistiche e mostra il conteggio di ogni classe di problema riparato per facile audit e revisione umana
  • Elaborazione locale per la privacy: analisi, riparazione e formattazione avvengono localmente nel browser, nessun input inviato a un server
  • Passaggio fluido alla formattazione: il JSON standard riparato può passare direttamente al Formattatore JSON, Validatore Schema o generatore di codice come passi successivi
  • Caricamento di file ed esempi: supporta il caricamento di file .json/.txt o il clic per caricare un esempio per la verifica rapida degli effetti della riparazione

Esempi di codice

Riparazione programmatica con la libreria jsonrepair JavaScript

javascript
// npm install jsonrepair
import { jsonrepair } from 'jsonrepair';

const broken = `{
  name: 'Alice',
  age: 30,
  tags: ['dev', 'writer',], // virgola finale + commento
}`;

try {
  const fixed = jsonrepair(broken);
  const obj = JSON.parse(fixed);
  console.log(obj);
  // => { name: 'Alice', age: 30, tags: ['dev', 'writer'] }
} catch (err) {
  console.error('Ancora non riparabile:', err.message);
}

Riparazione programmatica con la libreria jsonrepair Python

python
# pip install jsonrepair
from jsonrepair import jsonrepair
import json

broken = '''{
  name: "Alice",
  age: 30,
  tags: ["dev", "writer",], // virgola finale + commento
}'''

fixed = jsonrepair(broken)
obj = json.loads(fixed)
print(obj)
# => {'name': 'Alice', 'age': 30, 'tags': ['dev', 'writer']}

Fix rapido delle virgole finali con jq + sed (solo emergenza)

bash
# Rimuove le virgole finali da oggetti/array (opzione di emergenza; NON gestisce commenti / apici singoli)
# Per scenari complessi, usa una libreria dedicata come jsonrepair
sed -E 's/,([ \t]*[}\]])/\1/g' broken.json > clean.json

# Valida l'output pulito
jq . clean.json >/dev/null && echo 'JSON è valido'

Domande frequenti

Qual è la differenza tra Riparare JSON e Formattare JSON?

Il Formattatore JSON riformatta solo JSON già legale ma con indentazione o spaziatura incoerente. Riparare JSON, invece, gestisce specificamente JSON con errori di sintassi: prima corregge problemi strutturali come virgole finali, apici singoli, commenti, parentesi mancanti, poi emette il formato standard. Quando uno strumento di formattazione lancia SyntaxError, dovresti iniziare con Riparare JSON.

Quali errori di sintassi JSON comuni lo strumento può riparare?

Lo strumento include algoritmi di riparazione intelligenti per i seguenti problemi frequenti: 1) Virgole finali; 2) Apici singoli al posto di doppi; 3) Chiavi senza apici; 4) Stringhe non chiuse; 5) Commenti JavaScript di riga/blocco; 6) JSON avvolto in blocchi di codice Markdown; 7) Graffe/parentesi di chiusura mancanti per troncamento.

Perché l'output JSON di IA o LLM è spesso non standard?

I grandi modelli linguistici (es. ChatGPT, Claude, Gemini) producono frequentemente JSON avvolto in Markdown (```json ... ```), con testo esplicativo in prefisso/suffisso, virgole finali, commenti o con struttura incompleta per troncamento di token. Riparare JSON è specificamente ottimizzato per questi scenari per pulire con un clic l'output IA in JSON valido.

Il JSON riparato è sempre strutturalmente identico ai dati originali?

L'output riparato è una stringa JSON valida conforme allo standard JSON; la semantica dei dati è preservata nella stragrande maggioranza dei casi. Tuttavia, poiché la riparazione si basa su regole euristiche, in scenari estremamente rotti o ambigui (es. più virgole mancanti sulla stessa riga) può deviare leggermente dall'intento originale. Si raccomanda di eseguire una Validazione Schema o una revisione umana per i dati critici.

Perché non usare direttamente Python json.loads o JavaScript JSON.parse?

I parser nativi possono solo lanciare errori su SyntaxError, non riparare. Riparare JSON è uno strato tollerante che si pone davanti ai parser nativi: tenta prima di riparare il testo, poi lo passa al parser nativo, garantendo che l'output finale sia consumabile da qualsiasi parser JSON stretto. La stessa idea può essere applicata come pre-elaborazione in ambienti di produzione lato server.

I commenti in JSON5 / JSONC vengono preservati?

No. I commenti fanno parte della sintassi estesa JSON5, non del JSON standard. Lo strumento li rimuove per garantire che l'output sia conforme al JSON standard. Se desideri conservarli, continua a usare file sorgente JSON5 o la toolchain JSONC. Se devi convertire JSON5 in JSON standard, questo strumento lo fa direttamente.

Il JSON troncato (es. output streaming tagliato) può essere riparato?

Sì. Lo strumento tenta di abbinare le parentesi destre mancanti, le parentesi quadre e gli apici di chiusura delle stringhe, preservando quanto più contenuto identificato possibile. Nota: se il punto di troncamento cade all'interno di un letterale stringa, potresti aver bisogno di fornire manualmente i caratteri chiave mancanti.

C'è perdita di dati dopo la riparazione?

Negli scenari di riparazione comuni (rimozione virgole finali, aggiunta apici, completamento parentesi, rimozione commenti) la semantica dei dati è completamente preservata. In rari casi, quando il contenuto originale ha un'ambiguità irreversibile (es. livello di annidamento distrutto), lo strumento riparerà il più conservativamente possibile e emetterà l'originale così com'è; non eliminerà attivamente campi o chiavi.

Posso riparare più JSON in batch?

Questo strumento ripara un input alla volta. Per scenari in batch, raccomandiamo di eseguire l'algoritmo sottostante localmente in uno script (es. la libreria jsonrepair di Python o il pacchetto npm josdejong/jsonrepair), poi importare il risultato in questo strumento per verifica umana e formattazione.

Devo ancora formattare e fare Validazione Schema dopo la riparazione?

Raccomandato. La riparazione affronta principalmente errori a livello di sintassi; la formattazione e la Validazione Schema garantiscono leggibilità e correttezza business. L'output dello strumento di riparazione si connette perfettamente con Formattatore JSON, Validatore Schema e generatori di codice di GeekFormat.

Lo strumento carica il mio JSON su un server?

No. Tutta l'analisi, riparazione e formattazione avviene localmente nel browser; né l'input né i risultati intermedi vengono inviati a nessun server. Funziona offline, adatto per gestire JSON sensibili (es. risposte API di ambienti di produzione, configurazioni interne).

Posso fissare la strategia di riparazione usata ogni volta?

Questo strumento abilita tutte le regole di riparazione comuni per impostazione predefinita per massimizzare il tasso di successo. Se hai bisogno di un controllo fine sulle regole per un linguaggio o team specifico, puoi usare la libreria jsonrepair nel tuo ambiente di produzione e abilitare o disabilitare selettivamente regole specifiche. L'output di questo strumento può anche servire come input standardizzato per la validazione a valle.

Risoluzione dei problemi

Errore 'Impossibile riparare questo JSON'

Causa: il testo di input presenta gravi danni strutturali, come più parentesi mancanti, letterali stringa troncati o set di caratteri corrotto. Soluzione: apri prima il file originale in un editor di testo semplice, conferma che la codifica sia UTF-8 senza BOM e non sia un binario compresso; se i dati provengono da una risposta API, contatta l'upstream per completarli; per set di dati estremamente rotti, usa direttamente il file sorgente.

I campi sono stati spostati nella posizione sbagliata dopo la riparazione

Causa: il testo originale conteneva caratteri di sintassi JSON (es. //, /*, }) all'interno di commenti o letterali stringa, fuorviando il parser; oppure il livello di annidamento è così profondo che l'abbinamento delle parentesi è disallineato. Soluzione: esegui manualmente l'escape di // e /* all'interno delle stringhe; per dati profondamente annidati, aggiungi parentesi esterne temporanee o interruzioni di riga prima di rieseguire la riparazione.

Il testo esplicativo nell'output IA non viene rimosso

Causa: l'output IA spesso inizia/finisce con linguaggio naturale (es. 'Ecco il risultato:') e può estendersi su più righe. Soluzione: usa un editor di testo per eliminare il testo fuori dal blocco JSON, mantenendo solo il contenuto all'interno del wrapper ```json più esterno; se lo strumento non riesce ancora a riconoscerlo, aggiungi manualmente le { } più esterne prima di rieseguire la riparazione.

La dimensione non è cambiata dopo la riparazione, o alcuni caratteri sono stati sostituiti

Causa: l'originale conteneva barre inverse, escape Unicode o entità HTML, che lo strumento ha ri-escapato secondo le regole JSON. Soluzione: verifica se l'originale era annidato in una stringa JS; se è in una pagina HTML, decodifica prima l'HTML; più caratteri dopo l'escape è normale.

Il browser mostra 'Memoria insufficiente' o si blocca

Causa: un singolo input oltre 5-10 MB esercita una pressione significativa sulla memoria del browser. Soluzione: dividi i dati in batch più piccoli (1-2 MB ciascuno); oppure usa la libreria jsonrepair lato server per lo streaming; una piccola differenza tra il risultato riparato e l'originale è normale.

La validazione Schema segnala ancora errori dopo la riparazione

Causa: Riparare JSON corregge solo errori a livello di sintassi; non impone nomi, tipi o valori dei campi business rispetto allo Schema. Soluzione: usa lo strumento di Validazione JSON Schema di GeekFormat per verificare i vincoli dei campi; individua i campi specifici tramite l'errore e correggili manualmente.

Glossario

JSON
JavaScript Object Notation, formato leggero di scambio dati basato su coppie chiave-valore definito in RFC 8259. Standard di fatto per API REST, file di configurazione e log.
RFC 8259
La specifica JSON ufficiale IETF, che definisce la sintassi stretta del JSON valido - tutte le chiavi devono essere tra apici doppi, solo un insieme limitato di caratteri nelle stringhe necessita escape, commenti e virgole finali non sono permessi.
JSON.parse
Il parser JSON stretto integrato in JavaScript e nei browser moderni, conforme a RFC 8259. Lancia SyntaxError su qualsiasi errore di sintassi e non può eseguire riparazione tollerante.
JSON5
Una sintassi estesa per JSON (non standard), che permette chiavi senza apici, stringhe con apici singoli, commenti (// e /* */), virgole finali, numeri esadecimali, ecc. Più facile da scrivere a mano ma incompatibile con JSON.parse.
JSONC
JSON with Comments, nome generico usato da editor come VS Code per file di configurazione JSON con commenti (es. tsconfig.json). Effettivamente un alias di JSON5.
Virgola finale
Una virgola extra dopo l'ultimo elemento di un oggetto o array. Permessa in JavaScript ma vietata dallo standard JSON - l'errore di sintassi più comune dagli output LLM e dalle copie di console.log().
Blocco di codice Markdown
Uno snippet di codice avvolto in tre backtick (```). Gli LLM spesso avvolgono automaticamente l'output JSON in ```json ... ```; incollarlo direttamente in JSON.parse() fallirà.
Parser tollerante
Un parser che tenta di recuperare e continuare l'analisi quando incontra errori di sintassi. Il motore principale di uno strumento Riparare JSON, distinto dal JSON.parse stretto.
SyntaxError
L'eccezione di errore di sintassi lanciata da JavaScript. Qualsiasi parser JSON stretto la lancia quando riceve input non conforme a RFC 8259.
JSON canonico
JSON rigenerato tramite parse + stringify, con ordine delle chiavi stabile, senza spazi extra e 100% compatibile con parser standard. Il formato di output finale di uno strumento Riparare JSON.

Tipi di Errori Comuni nella Riparazione JSON con Esempi

CategoriaPrimaDopoMetodo di riparazione
Virgola finale{ "a": 1, }{ "a": 1 }Rimuovere la virgola dopo l'ultimo elemento
Apici singoli{ 'a': 1 }{ "a": 1 }Sostituire tutti gli apici singoli con doppi
Chiavi senza apici{ a: 1 }{ "a": 1 }Aggiungere apici doppi attorno alla chiave
Commenti di riga{ // commento "a": 1 }{ "a": 1 }Rimuovere i commenti //
Commenti di blocco{ /* blocco */ "a": 1 }{ "a": 1 }Rimuovere i commenti /* */
Wrapper Markdown```json { "a": 1 } ```{ "a": 1 }Rimuovere i wrapper ```json e ```
Stringa non chiusa{ "a": "ciao }{ "a": "ciao" }Aggiungere l'apice di chiusura mancante
Parentesi mancante{ "a": 1{ "a": 1 }Stack-match per aggiungere graffa/parentesi di chiusura

Riparare JSON vs Formattare JSON vs Validazione JSON Schema

StrumentoCosa risolveRequisito di inputModalità di errore
Riparare JSONConvertire JSON con errori in JSON validoTollerante, accetta JSON non standardErrore se troppo rotto per indovinare la struttura
Formattare JSONRiformattare JSON validoDeve essere già JSON validoSyntaxError lanciato direttamente
Comprimere JSONRimuovere spazi, ridurre dimensioneDeve essere già JSON validoSyntaxError lanciato direttamente
Validazione JSON SchemaVerificare tipi/valori dei campi vs regole businessDeve essere già JSON validoElenca ogni campo che viola le regole
JSON Merge / SortFusione multi-fonte / ordinamento chiaviDeve essere già JSON validoSyntaxError lanciato direttamente

Authoritative References