100 % locale — i tuoi dati non lasciano mai il tuo browser

NDJSON in JSON — un solo array per jq

Trasforma JSON delimitato da ritorni a capo in un unico array. Le righe vuote sono saltate e una riga rotta viene indicata col suo numero.

Istantaneo Privato Zero cookie
Indentazione

Input NDJSON

Output JSON

Che cosa fa questo strumento

Entra JSON delimitato da a capo, esce un array.

{"id": 1, "name": "Ada"}
{"id": 2, "name": "Grace"}
[
  {
    "id": 1,
    "name": "Ada"
  },
  {
    "id": 2,
    "name": "Grace"
  }
]

È tutto il formato: un valore JSON per riga, senza virgole in mezzo, senza parentesi attorno. È quello che scrivono le catene di log, quello che si aspettano bq load e molte API di flusso, e quello che produce jq -c.

La riga sbagliata viene nominata

{"a": 1}

{oops}
Invalid JSON on line 3

La riga vuota viene saltata senza una parola — un file NDJSON spesso finisce con una. La riga malformata ferma la conversione, e il messaggio porta il suo numero, così ci vai dritto. Non ricevi un array parziale: metà dei record senza niente che lo dica è peggio di un errore.

I numeri lunghi tengono le loro cifre

{"id": 12345678901234567890}
[
  {
    "id": 12345678901234567890
  }
]

Oltre una sedicina di cifre un numero JavaScript smette di essere esatto: leggi quell’id come numero e ne riprendi un altro, in silenzio. Qui sia la lettura sia la scrittura conservano il letterale com’era scritto, ed è questo che fa sopravvivere al viaggio un file di identificatori di Twitter o Discord.

Che cosa non fa

  • Riordinare o togliere i doppioni. L’array tiene le righe nell’ordine in cui sono arrivate, ripetizioni comprese.
  • Pretendere oggetti. Una riga può essere qualsiasi valore JSON: 1, "x" e null sono record validi e passano come tali.
  • Spezzare una riga. Due valori su una riga sono un errore, non due record.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Che cosa succede se una riga è malformata?
La conversione si ferma e ti dice quale: `Invalid JSON on line 3`. Non viene restituito niente di parziale — mezzo array sembrerebbe un risultato, e ti porteresti dietro i record mancanti. Correggi la riga e riconverti.
Gli identificatori numerici lunghi sopravvivono?
Sì, cifra per cifra. Un id di 19 cifre supera ciò che un numero JavaScript tiene esatto, e un convertitore che lo leggesse come numero ti restituirebbe il valore vicino senza dire nulla. Qui lettura e scrittura conservano il letterale, quindi `12345678901234567890` esce come sé stesso.
Che cosa conta come riga, esattamente?
Un valore JSON intero. Le righe vuote vengono saltate, i fine riga `\r\n` non danno fastidio e nemmeno un indicatore dell’ordine dei byte in testa. Due oggetti sulla stessa riga, invece, non sono due record: quella riga viene segnalata come non valida, perché NDJSON mette un valore per riga e indovinare dove tagliare sarebbe inventare dati.

Convertitori correlati