Formatador JSONL

Enganxa aquí JSONL o NDJSON. Les línies buides s'ignoren automàticament i cada línia de dades ha de ser un objecte JSON complet.

El resultat formatat apareixerà aquí.

Cada línia no buida hauria de ser un objecte JSON complet.

Línies totals: 1Línies no buides: 0Línies vàlides: 0Línies no vàlides: 0
Enganxa JSONL per començar a formatar immediatament.

Una pàgina lleugera de formatat JSONL pensada per a logs, arxius de sessió i exportacions en flux. Enganxa a l'esquerra els objectes JSON separats per salts de línia i visualitza immediatament a la dreta el resultat formatat de cada registre, veient directament quina línia falla.

Relacionats

Què és el formatat JSONL?

JSONL (JSON Lines) és un format de text que organitza els registres JSON per línies. La seva característica central no és «assemblar-se a JSON», sinó que «cada registre ocupa la seva pròpia línia». En l'enginyeria real això gairebé sempre es tradueix que cada línia no buida és un objecte JSON complet, amb els objectes separats per salts de línia en lloc d'embolicar-los a més en un gran array `[{...},{...}]`.

Aquesta organització escau especialment bé a logs, fluxos d'esdeveniments, arxius de sessió, exportacions massives i processament en flux: el programa no ha de carregar tot el fitxer a memòria, sinó que pot consumir els registres línia per línia. Si una línia està danyada, es localitza directament el seu número, en lloc de comptar claus i buscar comes a cegues dins d'un array JSON llarguíssim.

El formatat JSONL no és el mateix que el formatat JSON normal. Un formatador normal assumeix que l'entrada és un document JSON complet; un formatador JSONL ha d'analitzar, validar i reportar errors línia per línia, conservant a més la semàntica de registres separats per salts. En logs i fitxers d'exportació aquesta diferència és crucial.

Aquesta pàgina està dissenyada al voltant d'aquesta semàntica real: a l'esquerra s'introdueixen registres d'objecte separats per línies, a la dreta es mostra el resultat formatat per registre, alhora que s'assenyalen directament les línies errònies, truncades i no-objecte. Així, en depurar un fitxer `.jsonl`, veus «quin registre falla» en lloc de rebre un `SyntaxError` genèric.

Casos d'ús

  • Embelleir registre per registre el JSONL exportat dels logs d'una aplicació abans de revisar camp per camp, en lloc de mirar fixament una llarga cadena d'objectes comprimits en una sola línia
  • Revisar fitxers d'arxiu de sessions on cada línia és un objecte esdeveniment, confirmant que cada registre és complet i llegible
  • Quan falla una exportació massiva d'un pipeline de dades, una plataforma de tracking o Elasticsearch, localitzar ràpidament quina línia de l'objecte JSON està mal escrita
  • En depurar interfícies de sortida en flux, comprovar si el servidor produeix realment «un objecte per línia» de manera contínua en lloc d'emetre abans d'hora un objecte a mitges
  • Enganxar NDJSON copiat de la terminal, panells de monitoratge o plataformes de logs al núvol: primer ordenar l'estructura i després continuar la investigació
  • Comprovar si en resultats d'objectes línia per línia generats per IA s'ha colat en alguna línia un array, una cadena o un JSON incomplet
  • Abans d'importar a fluxos que depenen de registres per línia com ClickHouse, BigQuery o Kafka Connect, revisar manualment el contingut JSONL
  • En auditar logs d'auditoria, esdeveniments de risc o fluxos d'esdeveniments de tracking, comprovar registre per registre si l'estructura dels objectes es manté estable i coherent
  • Quan un fitxer JSONL queda truncat o es descarrega incomplet, veure a l'instant quin és l'últim objecte que no s'ha tancat
  • Formatejar primer el JSON delimitat per línies exportat per eines internes i després enviar-lo a un company per revisió de codi o comprovació de dades
  • Abans d'escriure un script que analitzi JSONL, confirmar manualment els nivells de camps, objectes niats i posició dels arrays per reduir el temps de depuració de l'script
  • En processar exportacions històriques amb línies buides i errònies barrejades, filtrar primer els problemes d'estructura abans de decidir si es converteix a CSV o s'importa a una base de dades

Com usar-ho

  1. Enganxa el contingut JSONL o NDJSON a l'àrea d'entrada, assegurant-te que cada línia no buida sigui un objecte JSON independent
  2. A la dreta es formatarà immediatament línia per línia i, en les línies errònies, s'indicarà el número de línia, el missatge d'error i el registre original
  3. Corregeix les línies corresponents segons les indicacions fins que el nombre de línies invàlides arribi a zero
  4. Quan tot sigui vàlid, copia el resultat formatat complet o envia les dades als scripts, importadors i processos d'anàlisi posteriors

Característiques

  • Analitza JSONL / NDJSON línia per línia, sense haver d'embolicar abans les dades en un array JSON complet com `[{...},{...}]`
  • Valida segons la semàntica real de «cada línia no buida és un objecte JSON», ajustada a formes de dades habituals com logs, fluxos d'esdeveniments i arxius de sessió
  • Disseny en dues columnes: entrada amb `textarea` a l'esquerra i resultat formatat en temps real a la dreta, ideal per corregir mentre es revisa
  • Les línies errònies mostren directament el número de línia, l'error d'anàlisi i el contingut original, per reparar ràpidament registres truncats, claus que falten i errors de concatenació
  • La còpia només s'habilita quan totes les línies no buides són vàlides, evitant que dades parcialment correctes i parcialment danyades passin als processos posteriors
  • Inclou comptadors de línies totals, no buides, vàlides i invàlides, per avaluar d'un cop d'ull quants registres estan danyats en un fitxer gran
  • Inclou dades d'exemple per provar el formatat JSONL tan bon punt s'obre la pàgina
  • Tot el processament es fa localment al navegador; els logs, esdeveniments de sessió i exportacions d'API no es pugen

Formatador JSONL vs formatador JSON vs reparació JSON

Aquestes eines s'usen moltes vegades seguides, però resolen problemes diferents. Triar l'entrada correcta accelera molt la feina.

EinaEntrada més adequadaCapacitat principalEscenari d'ús
Formatador JSONLUn objecte JSON per líniaValidar i embelleir registre per registreLogs, NDJSON, arxius de sessió, exportacions en flux
Formatador JSONUn objecte o array JSON completEmbelleir tot el document JSONRespostes d'API, fitxers de configuració, payloads puntuals
Reparació JSONText JSON amb errors de sintaxi o no estàndardReparar primer la sintaxi i després seguir processantComes finals, comentaris, problemes de cometes, JSON truncat

Best Practices

En depurar, mantén la forma JSONL original en lloc d'embolicar-la manualment en un array només per entendre-la

Si el sistema posterior consumeix JSONL, depura preferiblement en la forma original de «un registre per línia». Embolicar-la en un array permet passar-la a un formatador normal, però perd la semàntica dels números de línia originals i dificulta associar l'error a la seva posició real.

En fitxers grans, revisa primer les últimes línies

Molts fitxers JSONL no tenen un error estructural al mig, sinó que les últimes línies queden truncades per tall de flux, descàrrega fallida o escriptura incompleta. Mirar primer els últims registres sol ser més ràpid que recórrer tot el fitxer des del principi.

Si l'entrada porta cometes simples, comentaris o estil JSON5, passa primer per la reparació JSON: estalviaràs temps

La pàgina JSONL posa el focus en la validació d'objectes línia per línia; quan les dades d'origen no són JSON estàndard de per si, reparar abans de formatar sol ser més eficient que corregir manualment línia per línia un fitxer llarg.

En preparar una reimportació, conserva la semàntica de transport d'un objecte per línia

El bloc embellit multilínia de la dreta és més còmode per a les persones, però si has de reescriure les dades en un sistema de logs, una cua de missatges o un importador, conserva l'estructura original d'un objecte per línia en lloc de prendre la vista prèvia com a format de transport final.

Usa els números de línia com a pista principal, en lloc de llegir tot el fitxer a ull

En una depuració real, el més ràpid sol ser fixar primer el número de línia errònia i comparar aquest registre amb els registres vàlids veïns. Així es veu abans si falten claus o cometes, si un camp està truncat o si algun objecte té barrejat un tipus incorrecte.

Preguntes freqients

Quina diferència hi ha entre JSON i JSONL?

El JSON normal sol ser un únic objecte o array complet que s'ha d'analitzar com un document sencer; en canvi, JSONL (JSON Lines, també anomenat NDJSON) conté un registre independent per línia, i en la pràctica d'enginyeria el més habitual és «un objecte JSON per línia». Escau més a logs, fluxos d'esdeveniments, processament en flux i importacions massives, perquè permet llegir, escriure i localitzar errors línia per línia.

Per què aquesta pàgina insisteix en «un objecte JSON per línia»?

Perquè la majoria de fitxers JSONL del món real estan organitzats així, sobretot logs, arxius de sessió, fluxos d'esdeveniments i exportacions. Les teves mostres d'arxiu també segueixen aquesta forma típica: cada línia és un objecte separat per un salt de línia. La pàgina valida amb aquesta semàntica, que s'ajusta molt millor a la depuració real que acceptar de forma laxa qualsevol valor JSON.

En què es diferencia JSONL d'un array JSON com `[{...},{...}]`?

Un array JSON és un document JSON complet que cal llegir sencer abans d'analitzar-lo; JSONL divideix cada objecte en registres de línia independents, es pot llegir en flux i permet localitzar directament la línia quan falla un registre. Per a fitxers de logs grans i fluxos d'esdeveniments, JSONL és més adequat que un array únic.

Per què s'ignoren les línies buides?

Les línies buides solen provenir de copiar i enganxar, de la rotació de logs o de l'edició manual, i no representen registres de dades reals. Ignorar-les redueix el soroll sense renunciar a la comprovació estricta de totes les línies que contenen dades.

Què passa si una línia és un array, una cadena o `null`?

Aquesta pàgina la considerarà una línia invàlida, perquè el format objectiu és «cada línia no buida és un objecte JSON». Si les teves dades necessiten emmagatzemar arrays o valors primitius línia per línia, no es tracta de l'escenari típic de logs JSONL per al qual aquesta pàgina està optimitzada.

Per què no es pot copiar tot el resultat quan hi ha una línia errònia?

És una interacció deliberadament conservadora. Només es permet copiar quan totes les línies no buides són vàlides, per evitar que un resultat parcialment correcte i parcialment danyat continuï passant a importadors, scripts o companys, estalviant una segona ronda de depuració.

Pot ajudar-me a detectar fitxers de logs truncats?

Sí. Molts problemes de JSONL apareixen a les últimes línies: per exemple, a un objecte li falta `}`, a una cadena li falta la cometa de tancament o el flux de xarxa es talla a mitges. La pàgina exposa directament la línia errònia corresponent, especialment útil per a descàrregues incompletes i talls de sortida en flux.

JSONL i NDJSON són el mateix?

En la immensa majoria de contextos d'enginyeria es poden tractar com a sinònims. Tots dos indiquen registres JSON separats per salts de línia; només canvia l'hàbit de nomenclatura.

En formatar JSONL es pugen les meves dades?

No. Tota l'anàlisi, validació i formatat s'executa únicament al navegador; els logs, respostes d'API, arxius de sessió i exportacions de dades no s'envien a cap servidor.

Quan caldria usar el formatador JSON normal en lloc del de JSONL?

Si l'entrada és per si mateixa un objecte JSON complet o un array, com el cos d'una resposta d'API, un fitxer de configuració o un paquet de dades tipus `[{...},{...}]`, cal usar la pàgina de formatat JSON normal; només quan l'entrada són registres d'objectes separats per salts de línia escau millor aquesta pàgina JSONL.

Glossari

JSONL
Format de text amb registres JSON separats per línies. La forma més habitual en enginyeria és que cada línia no buida sigui un objecte JSON complet.
JSON Lines
Nom complet de JSONL i una altra denominació habitual; normalment es considera sinònim de JSONL.
NDJSON
Newline Delimited JSON, literalment «JSON delimitat per salts de línia». En la majoria d'escenaris de logs i pipelines de dades és pràcticament equivalent a JSONL.
Registre per línies
Disposició de dades en què cada línia representa un registre complet, adequada per a escriptura i lectura en flux i per localitzar errors per línia.
Pretty Print / formatat llegible
Reorganitzar un JSON comprimit d'una sola línia en una estructura llegible amb indentació i salts de línia, per facilitar la inspecció manual dels nivells de camps.
Línia errònia
Una línia que no és JSON vàlid o que, tot i poder analitzar-se, no compleix l'estructura esperada (per exemple, no és un objecte) i, per tant, no constitueix un registre JSONL vàlid.
Flux truncat
Un log o exportació que es talla a mitges durant la transmissió, el buidat del buffer o el desament, deixant l'últim registre sense tancar del tot.
Array JSON
En JSON estàndard, una col·lecció completa embolicada per `[` i `]`, per exemple `[{...},{...}]`. A diferència de JSONL, s'ha d'analitzar com un únic document.

Authoritative References