Reparació JSON

Eina gratuïta en línia de reparació JSON. Detecta i repara automàticament comes finals, cometes simples, claus sense cometes, claudàtors no tancats, comentaris i embolcalls Markdown. Dissenyada per netejar sortida d'IA i recuperar JSON truncat. Tot el processament es fa localment al navegador.

Relacionats

Què és la reparació JSON (JSON Repair)?

La reparació JSON (JSON Repair) és el procés de transformar automàticament un text JSON no estàndard, que no pot ser processat per un analitzador JSON estricte a causa d'errors de sintaxi, en una cadena JSON vàlida conforme a RFC 8259. A diferència del 'formatat JSON (Beautify)', la reparació JSON no tracta les diferències de format sinó els errors estructurals: comes finals, cometes simples, cometes mancants, claudàtors no tancats, embolcalls Markdown, comentaris — tot això fa que JSON.parse() llanci directament un SyntaxError, però són extremadament comuns en el desenvolupament real.

Les fonts de JSON 'no estàndard' en projectes d'enginyeria reals estan molt concentrades: ① En copiar des de LLM com ChatGPT / Claude / Gemini, la sortida sovint està embolicada en blocs de codi Markdown (```json ... ```) o acompanyada de text explicatiu; ② Copiar des de console.log() d'objectes JavaScript pot incloure comes finals i cometes simples; ③ Els fitxers de configuració sovint utilitzen sintaxi estesa JSON5 / JSONC (permetent comentaris, claus sense cometes, cadenes multilínia, etc.); ④ Les respostes de flux o el truncament de registres poden trencar el JSON a mig camí, faltant la `}` o `"` de tancament. Una eina de reparació JSON escaneja el text d'entrada, identifica aquests problemes típics i restaura el contingut a JSON estàndard amb el principi de 'mínima intrusió', preservant al màxim la semàntica de les dades originals.

A nivell d'implementació, la reparació JSON normalment consta de dues fases: ① Anàlisi tolerant (tolerant parse) — ús d'un escàner basat en màquina d'estats en lloc de coincidència regex per processar el flux de caràcters pas a pas, distingint els caràcters de sintaxi 'dins de cadenes' i 'fora de cadenes'; ② Sortida canònica (canonical output) — regeneració amb `JSON.parse` + `JSON.stringify`, assegurant que la sortida sigui 100% vàlida per a qualsevol analitzador estricte posterior. L'eina de reparació JSON de GeekFormat completa tot el flux de reparació localment al navegador, sense enviar mai el contingut original a cap servidor, adequat per processar respostes d'API sensibles, fitxers de configuració interns i sortides de models d'IA.

Casos d'ús

  • Neteja de sortida d'IA/LLM: converteix amb un sol clic JSON amb embolcall Markdown, text explicatiu i comes finals retornat per ChatGPT/Claude a JSON estàndard
  • Depuració i resolució de problemes d'API: quan les respostes d'API es trunquen per problemes de passarel·la o xarxa, completa ràpidament claudàtors i cadenes per localitzar l'estructura de dades original
  • Literals d'objecte JavaScript copiats de la consola: correcció integral de cometes simples, comes finals i claus sense cometes
  • Neteja de fitxers de configuració: elimina comentaris de JSON5/JSONC per obtenir JSON estàndard, llest per a connexió unificada a serveis posteriors
  • Reparació de dades de registre i porta-retalls: estandarditza ràpidament fragments JSON que contenen comentaris, espais en blanc especials o truncament
  • Preprocessament de migració de dades i scripts: afegeix un pas de reparació al pipeline de migració de dades per evitar que uns quants JSON invàlids bloquegin tot el lot ETL

Com usar-ho

  1. Enganxa el contingut JSON amb errors, embolicat en Markdown o truncat a la caixa d'entrada esquerra, o fes clic a 'Mostra' per carregar un JSON danyat típic, o puja un fitxer .json/.txt
  2. L'eina detecta i repara automàticament els problemes de sintaxi comuns; l'àrea de sortida dreta mostra el JSON estàndard formatat i el recompte de cada tipus de problema reparat
  3. Si encara queden missatges d'error vermells, pots editar manualment l'entrada i tornar a activar la reparació (Mac: ⌘+Shift+R, Windows: Ctrl+Shift+R)
  4. Després de confirmar que l'estructura és correcta, fes clic a 'Copiar' per posar el resultat reparat al porta-retalls, o fes clic a 'Descarregar' per desar com a repaired.json per continuar amb formatat, validació, etc.

Característiques

  • Cobreix 7 tipus d'errors de sintaxi comuns: comes finals, cometes simples, claus sense cometes, cadenes no tancades, comentaris, claudàtors mancants, embolcalls de blocs de codi Markdown
  • Neteja de sortida d'IA optimitzada: elimina automàticament embolcalls ```json i text explicatiu fora dels blocs de codi, reconeix la sortida típica de ChatGPT, Claude, Gemini i altres LLM
  • Compatible amb JSON5/JSONC: analitza sintaxi estesa incloent comentaris, cometes laxes i espais en blanc especials (com caràcters Unicode invisibles)
  • Compleció intel·ligent de JSON truncat: gestiona respostes d'API truncades i claudàtors de tancament mancants completant automàticament claudàtors i cometes que falten
  • Visualització de problemes de reparació: compta i mostra automàticament quantes vegades s'ha reparat cada tipus de problema, facilitant l'auditoria i la revisió manual
  • Processament local per a la privadesa: l'anàlisi, reparació i formatat es fan al navegador, el contingut d'entrada no s'envia a cap servidor
  • Transició perfecta al formatat: el JSON estàndard reparat pot entrar directament al formatat JSON, validació Schema i generació de codi amb un sol clic
  • Càrrega de fitxers i mostres: admet la càrrega de fitxers .json/.txt o fer clic per carregar una mostra per verificar ràpidament l'efecte de la reparació

Exemples de codi

Reparació programàtica amb la biblioteca JavaScript jsonrepair

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

const broken = `{
  name: 'Alice',
  age: 30,
  tags: ['dev', 'writer',], // trailing comma + comment
}`;

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

Reparació programàtica amb la biblioteca Python jsonrepair

python
# pip install jsonrepair
from jsonrepair import jsonrepair
import json

broken = '''{
  name: "Alice",
  age: 30,
  tags: ["dev", "writer",], // trailing comma + comment
}'''

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

Correcció ràpida de comes finals amb jq + sed (només emergència)

bash
# Elimina comes finals d'objectes/arrays (opció d'emergència; NO gestiona comentaris / cometes simples)
# Per a escenaris complexos, utilitza una biblioteca dedicada com jsonrepair
sed -E 's/,([ \t]*[}\]])/\1/g' broken.json > clean.json

# Valida la sortida reparada
jq . clean.json >/dev/null && echo 'JSON is valid'

Preguntes freqients

Quina diferència hi ha entre la reparació JSON i el formatat JSON?

El formatat JSON només reformata JSON que ja és vàlid però té sagnats o espais inconsistents. En canvi, la reparació JSON tracta específicament JSON amb errors de sintaxi: primer corregeix problemes estructurals com comes finals, cometes simples, comentaris i claudàtors mancants, després produeix format estàndard. Quan una eina de formatat llança SyntaxError, primer s'ha d'utilitzar la reparació JSON.

Quins errors de sintaxi JSON comuns pot reparar l'eina?

L'eina inclou algorismes intel·ligents de reparació per als següents problemes freqüents: 1) Comes finals (Trailing comma); 2) Cometes simples en lloc de dobles; 3) Claus sense cometes; 4) Cadenes no tancades; 5) Comentaris de línia/bloc JavaScript; 6) JSON embolicat en blocs de codi Markdown; 7) Claudàtors de tancament mancants per truncament del final.

Per què la sortida JSON d'IA o LLM sovint no és estàndard?

Els grans models de llenguatge (com ChatGPT, Claude, Gemini) sovint generen JSON amb embolcall Markdown (```json ... ```), text explicatiu al principi/final, comes finals, comentaris o estructura incompleta per truncament de tokens. La reparació JSON està especialment optimitzada per a aquests escenaris: neteja la sortida d'IA a JSON vàlid amb un sol clic.

El JSON reparat és sempre estructuralment idèntic a les dades originals?

La sortida reparada és una cadena JSON vàlida conforme a l'estàndard JSON; la semàntica de les dades es preserva en la gran majoria dels casos. No obstant això, com que la reparació es basa en regles heurístiques, en escenaris extremadament danyats o ambigus (p. ex., múltiples comes mancants a la mateixa línia) el resultat pot desviar-se lleugerament de la intenció original. Per a dades crítiques, es recomana validació Schema addicional o revisió manual.

Per què no utilitzar directament Python json.loads o JavaScript JSON.parse?

Els analitzadors natius només poden llançar error SyntaxError, no poden reparar. La reparació JSON és una capa tolerant situada davant dels analitzadors natius: primer intenta reparar el text, després el lliura a l'analitzador natiu, assegurant que la sortida final pugui ser processada per qualsevol analitzador JSON estricte. La mateixa idea es pot aplicar com a preprocessament al costat del servidor en entorns de producció.

Es conserven els comentaris de JSON5 / JSONC?

No. Els comentaris formen part de la sintaxi estesa JSON5, no del JSON estàndard; l'eina els elimina per assegurar la conformitat de la sortida amb el JSON estàndard. Si voleu conservar els comentaris, continueu utilitzant fitxers font JSON5 o la cadena d'eines JSONC. Si necessiteu convertir JSON5 a JSON estàndard, aquesta eina ho fa directament.

Es pot reparar JSON truncat (p. ex., sortida de flux tallada a mig camí)?

Sí. L'eina intenta fer coincidir els claudàtors de tancament, claudàtors quadrats i cometes de tancament de cadena que falten, preservant al màxim el contingut reconegut. Nota: si el punt de tall es troba dins d'un literal de cadena, pot ser necessari completar manualment els caràcters clau.

Hi ha pèrdua de dades després de la reparació?

En escenaris de reparació comuns (eliminar comes finals, afegir cometes, completar claudàtors, eliminar comentaris) la semàntica de les dades es preserva completament. En casos rars, quan el contingut original té ambigüitat irreversible (p. ex., nivell d'anidament destruït), l'eina repararà de la manera més conservadora possible i mantindrà l'estat original; no eliminarà activament camps ni claus.

Es poden reparar múltiples JSON per lots?

Aquesta eina repara una entrada per vegada. Per a escenaris per lots, es recomana executar primer l'algorisme bàsic localment en un script (com la biblioteca jsonrepair de Python o el paquet npm josdejong/jsonrepair) i després importar el resultat a aquesta eina per a verificació manual i formatat.

Després de la reparació, encara cal fer formatat i validació Schema?

Recomanat. La reparació resol principalment errors a nivell de sintaxi; el formatat i la validació Schema asseguren la llegibilitat i la correcció de negoci. La sortida de l'eina de reparació es connecta perfectament amb el formatat JSON, el validador Schema i els generadors de codi de GeekFormat.

L'eina puja el meu JSON a un servidor?

No. Tota l'anàlisi, reparació i formatat es fan localment al navegador; ni l'entrada ni els resultats intermedis s'envien a cap servidor. Funciona sense connexió, adequat per processar JSON que conté informació sensible (com respostes d'API d'entorn de producció, configuracions internes).

Es pot fixar l'estratègia de reparació utilitzada cada vegada?

Aquesta eina habilita per defecte totes les regles de reparació comunes per maximitzar la taxa d'èxit. Si necessiteu un control fi sobre les regles per a un llenguatge o equip específic, podeu utilitzar la biblioteca jsonrepair al vostre entorn de producció i habilitar o deshabilitar selectivament certes regles. La sortida d'aquesta eina també pot servir com a entrada estandarditzada per a validació posterior.

Solució de problemes

Error "No es pot reparar aquest JSON"

Causa: el text d'entrada té danys estructurals greus, com múltiples claudàtors mancants, literals de cadena truncats o conjunt de caràcters corromput. Solució: primer obre el fitxer original en un editor de text pla, confirma que la codificació és UTF-8 sense BOM i que no és un binari comprimit; si les dades provenen d'una resposta d'API, contacta amb l'origen per completar-les; per a conjunts de dades extremadament danyats, utilitza directament el fitxer font.

Els camps s'han mogut a una posició incorrecta després de la reparació

Causa: el text original contenia caràcters de sintaxi JSON (com //, /*, }) dins de comentaris o literals de cadena, enganyant l'analitzador; o el nivell d'anidament és tan profund que la coincidència de claudàtors és incorrecta. Solució: escapa manualment // i /* dins de cadenes amb barra invertida; per a dades profundament anidades, afegeix claudàtors externs temporals o salts de línia abans de tornar a executar la reparació.

El text explicatiu a la sortida d'IA no s'ha eliminat

Causa: la sortida d'IA sovint comença/acaba amb llenguatge natural (p. ex., "Aquí teniu el resultat:") i pot abastar múltiples línies. Solució: utilitza un editor de text per eliminar el text fora del bloc JSON, conservant només el contingut dins de l'embolcall ```json més exterior; si l'eina encara no ho pot reconèixer, afegeix manualment les { } més exteriors abans de tornar a executar la reparació.

La mida no ha canviat després de la reparació o alguns caràcters s'han substituït

Causa: l'original contenia barres invertides, escapaments Unicode o entitats HTML, que l'eina ha re-escapat segons les regles JSON. Solució: comprova si l'original estava anidat dins d'una cadena JS; si es troba en una pàgina HTML, descodifica primer l'HTML; l'augment de caràcters després de l'escapament és normal.

El navegador mostra "Memòria insuficient" o la pàgina es penja

Causa: una entrada única superior a 5–10 MB exerceix una pressió de memòria significativa al navegador. Solució: divideix les dades en lots més petits (1–2 MB cadascun); o utilitza la biblioteca jsonrepair al costat del servidor per a processament en flux; una petita diferència entre el resultat reparat i l'original és normal.

Després de la reparació, la validació Schema encara informa d'errors

Causa: la reparació JSON només resol errors a nivell de sintaxi; no verifica si els noms de camp de negoci, tipus o valors compleixen l'Schema. Solució: utilitza l'eina de validació JSON Schema de GeekFormat per verificar les restriccions de camp; localitza els camps específics segons l'error i corregeix-los manualment.

Glossari

JSON
JavaScript Object Notation, un format lleuger d'intercanvi de dades basat en parells clau-valor, definit a RFC 8259. Estàndard de facto per a API REST, fitxers de configuració i registres.
RFC 8259
L'especificació oficial de JSON publicada per IETF, que defineix la sintaxi estricta del JSON vàlid — totes les claus han d'estar entre cometes dobles, només un conjunt limitat de caràcters en cadenes necessita escapament, no es permeten comentaris ni comes finals.
JSON.parse
L'analitzador JSON estricte integrat a JavaScript i als navegadors moderns, seguint RFC 8259. Llança SyntaxError directament davant qualsevol error de sintaxi i no pot realitzar reparació tolerant.
JSON5
Sintaxi estesa per a JSON (no estàndard), que permet claus sense cometes, cadenes amb cometes simples, comentaris (// i /* */), comes finals, nombres hexadecimals, etc. Més fàcil d'escriure per a humans però incompatible amb JSON.parse.
JSONC
JSON with Comments, nom genèric utilitzat per editors com VS Code per a fitxers de configuració JSON amb comentaris (com tsconfig.json). En realitat, un àlies comú de JSON5.
Trailing Comma / Coma final
Una coma extra després de l'últim element d'un objecte o array. Permès en JavaScript però prohibit per l'estàndard JSON — l'error de sintaxi més comú de la sortida de LLM i còpies de console.log().
Bloc de codi Markdown
Un fragment de codi embolicat en tres accents greus (```). Els LLM sovint emboliquen automàticament la sortida JSON en ```json ... ```; enganxar-ho directament a JSON.parse() fallarà.
Tolerant Parser / Analitzador tolerant
Un analitzador capaç d'intentar recuperar-se i continuar l'anàlisi en trobar errors de sintaxi. El motor central d'una eina de reparació JSON, diferent del JSON.parse estricte.
SyntaxError
L'excepció d'error de sintaxi llançada per JavaScript. Qualsevol analitzador JSON estricte llança això en rebre entrada que no compleix RFC 8259.
Canonical JSON / JSON canònic
JSON regenerat mitjançant parse + stringify, amb ordre de claus estable, sense espais en blanc sobrants i 100% compatible amb analitzadors estàndard. El format de sortida final d'una eina de reparació JSON.

Tipus d'errors comuns de reparació JSON amb exemples

Categoria d'errorAbansDesprésMètode de reparació
Coma final{ "a": 1, }{ "a": 1 }Eliminar la coma després de l'últim element
Cometes simples{ 'a': 1 }{ "a": 1 }Substituir totes les cometes simples per dobles
Claus sense cometes{ a: 1 }{ "a": 1 }Afegir cometes dobles al nom de la clau
Comentaris de línia{ // comentari "a": 1 }{ "a": 1 }Eliminar línies senceres amb comentaris //
Comentaris de bloc{ /* bloc */ "a": 1 }{ "a": 1 }Eliminar comentaris de bloc /* */
Embolcall Markdown```json { "a": 1 } ```{ "a": 1 }Eliminar embolcalls ```json i ```
Cadena no tancada{ "a": "hello }{ "a": "hello" }Afegir la cometa de tancament de cadena que falta
Claudàtor mancant{ "a": 1{ "a": 1 }Coincidència de pila per afegir claudàtors de tancament que falten

Reparació JSON vs Formatat JSON vs Validació JSON Schema

EinaQuè resolRequisit d'entradaMode de fallada
Reparació JSONConvertir JSON amb errors de sintaxi en JSON vàlidTolerant, accepta JSON no estàndardError quan està massa trencat per endevinar l'estructura
Formatat JSONReformatar JSON vàlidHa de ser JSON ja vàlidSyntaxError llançat directament
Compressió JSONEliminar espais en blanc, reduir midaHa de ser JSON ja vàlidSyntaxError llançat directament
Validació JSON SchemaVerificar tipus/valors de camps contra regles de negociHa de ser JSON ja vàlidLlista de regles violades per cada camp
JSON Merge / SortFusió multi-font / ordenació de clausHa de ser JSON ja vàlidSyntaxError llançat directament

Authoritative References