Cosa significa davvero "grande" per un convertitore nel browser
Quando si dice che un file JSON è grande, si può intendere di tutto: da cinquemila righe a cinque gigabyte, e sono problemi completamente diversi. Un convertitore nel browser non ha un unico limite. Ne ha tre, e sapere quale stai per raggiungere ti dice se devi solo convertire, suddividere in blocchi o abbandonare del tutto il browser.
Il primo limite è l'analisi sintattica (parsing). Prima che avvenga qualsiasi conversione, il browser trasforma il tuo testo JSON in oggetti in memoria con JSON.parse, e gli oggetti analizzati occupano circa due o tre volte la memoria del testo da cui derivano. Un file da 25 MB diventa da 50 a 75 MB di oggetti attivi prima ancora che esista una singola cella CSV. Il secondo limite è l'input. Incollare cinquanta megabyte di testo in un'area di testo è lento e sgradevole su qualsiasi macchina, ed è per questo che esiste il pulsante di caricamento: consegna il file al convertitore senza farlo passare dagli appunti. Il terzo limite è l'anteprima. Dopo la conversione, la pagina mostra una tabella per farti controllare il risultato a occhio, e mostrare mezzo milione di righe del DOM è ciò che blocca davvero le schede. Nota cosa manca da questo elenco: la velocità di conversione. Come mostrano le misurazioni qui sotto, trasformare gli oggetti in testo CSV è il passaggio più economico di tutta la procedura.
Quindi "posso convertire online gratis un file JSON grande" in realtà pone tre domande più piccole. Il browser riuscirà ad analizzarlo senza esaurire la memoria. Il percorso di input lo gestirà con grazia. L'anteprima reggerà. Per la maggior parte dei file che la gente definisce grandi, la risposta a tutte e tre è sì, e il resto di questa guida serve a trovare il confine in modo onesto invece di indovinare.
Misurato: quanto è veloce questa pagina con file pesanti
Ogni numero di questa sezione è stato misurato sulla macchina di build con lo stesso identico motore di conversione che questa pagina esegue nel tuo browser: la stessa funzione jsonToCsv con appiattimento attivo, su dati ordini generati con oggetti cliente annidati. La macchina è un server normale, non un banco di prova ottimizzato, quindi considerali come l'ordine di grandezza giusto per un buon portatile.
Mille righe, 0,10 MB di JSON: 20 millisecondi. Diecimila righe, 1,01 MB: 57 millisecondi. Cinquantamila righe, 5,10 MB: 221 millisecondi. Centomila righe, 10,21 MB: 403 millisecondi. Duecentocinquantamila righe, 12,5 MB: 636 millisecondi. Cinquecentomila righe, 25,0 MB: circa 1,4 secondi di tempo motore, 2,3 secondi di tempo reale. L'output CSV per il file da mezzo milione di righe era di 11,7 MB, e la riga di intestazione è uscita esattamente come previsto: id, item, qty, price, customer.name, customer.city.
Due avvertenze oneste. Primo, questi tempi sono solo la conversione. Il tuo browser prima analizza il JSON e dopo mostra la tabella di anteprima, e l'anteprima è la parte costosa ai livelli più alti. Un file che si converte in due secondi può comunque far sembrare pesante la scheda mentre mezzo milione di righe di tabella vengono disegnate. Secondo, i dati di test generati sono uniformi. Le esportazioni reali con chiavi irregolari, annidamenti profondi o enormi blocchi di testo si convertono un po' più lentamente, perché il motore esamina ogni valore. Anche così, la forma del risultato regge: il passaggio di conversione resta sotto il secondo ben oltre le centomila righe e resta nei pochi secondi a mezzo milione. Se il tuo file si converte lentamente da un'altra parte, quel convertitore sta facendo qualcosa di dispendioso, perché il lavoro in sé è economico.
rows JSON size convert time
1,000 0.10 MB 20 ms
10,000 1.01 MB 57 ms
50,000 5.10 MB 221 ms
100,000 10.21 MB 403 ms
250,000 12.5 MB 636 ms
500,000 25.0 MB ~1.4 s engine / 2.3 s wall
# header produced for every file:
# id,item,qty,price,customer.name,customer.cityIl test dei 60 secondi: provarci prima di progettare
La maggior parte dell'ansia da file grandi si risolve semplicemente provando. Usa il pulsante di caricamento invece di incollare per tutto ciò che supera qualche megabyte, e osserva il badge di stato sopra il convertitore. Passa da Pronto a Valido con un conteggio righe quando il JSON viene analizzato correttamente. Se la scheda resta reattiva e il pulsante di download ti consegna un CSV, hai finito, e nessuna strategia di suddivisione è mai servita.
Due dettagli rendono il test onesto. Primo, tieni attiva la Conversione automatica, che è l'impostazione predefinita: il CSV appare appena il file viene caricato, così vedi il risultato senza un clic in più. Secondo, fidati del conteggio righe. Se il badge dice Valido con 480.000 righe e ti aspettavi più o meno quel numero, l'analisi ha capito il tuo file. Se il conteggio è molto diverso, di solito 1, il tuo JSON è probabilmente un unico oggetto gigante che avvolge l'array, e il convertitore ha estratto ciò che poteva. È un problema di forma del file, non di dimensione, e la nostra guida all'appiattimento spiega il modello del contenitore.
Se la scheda si blocca, balbetta a lungo o il browser propone di chiudere la pagina, fermati e suddividi in blocchi. Non ricaricare e incollare lo stesso file sperando in un risultato diverso. Il limite di memoria non tratta, e la sezione successiva è la strada per superarlo.
Suddivisione in blocchi nel browser: la ricetta che non perde mai una riga
La suddivisione in blocchi suona come un compromesso, ma è esatta. Dividi l'array JSON in pezzi, converti ogni pezzo nella scheda, scarica un CSV per pezzo e riuniscili mantenendo una sola riga di intestazione. Sulla macchina di build questo è stato verificato direttamente: un file da 20.000 righe diviso in due metà, ogni metà convertita separatamente, intestazione del secondo CSV rimossa, i due corpi concatenati. Il risultato unito era byte per byte identico alla conversione dell'intero file in una sola volta.
Vale una frase sul perché funziona. Quando ogni blocco ha la stessa forma, il convertitore ricava lo stesso elenco di colonne nello stesso ordine per ogni blocco, quindi i corpi si allineano perfettamente e l'unica cosa da gestire è l'intestazione. Conserva l'intestazione del primo CSV, elimina la riga di intestazione da ogni CSV successivo e concatena. L'unico caso che richiede attenzione sono i dati irregolari, dove righe diverse portano chiavi diverse: se il blocco uno non ha mai visto una colonna "notes" che il blocco due ha, le colonne non si allineeranno. Per i file irregolari, usa la strada dello script nella sezione successiva, che prima calcola l'elenco completo delle colonne.
Quanti blocchi. Punta a pezzi che la tua scheda converte comodamente, che le misurazioni qui sopra collocano tra 50.000 e 100.000 righe ciascuno. Un file da 400.000 righe diventa da quattro a otto blocchi, ciascuno convertito in meno di mezzo secondo. L'intero lavoro, inclusi i tuoi clic, richiede pochi minuti, e ogni riga sopravvive.
Dividere il file senza rompere il JSON
L'errore da evitare è dividere il file come testo. Tagliare un file da 25 MB a metà in un editor di testo lo rompe quasi sempre: una parentesi lasciata aperta, una stringa tagliata a metà virgoletta, una virgola orfana al confine. Dividilo come dati, con uno strumento che capisce il JSON, così ogni pezzo resta da solo un JSON valido.
Il divisore affidabile più corto è qualche riga di Python. Carica il file una volta, affetta la lista e riversa ogni fetta nel suo file. Verificato sulla macchina di build contro un file da 30.000 righe: tre pezzi da 10.000 righe, e ricomponendo i pezzi si è riprodotto esattamente il file originale. Se preferisci restare al terminale, jq affetta gli array con la stessa idea: jq '.[0:50000]' big.json > part1.json prende i primi cinquantamila elementi, e jq '.[50000:100000]' prende i successivi cinquantamila. È la sintassi standard di affettamento di jq, documentata nel manuale di jq.
Nomina i pezzi in ordine, part1, part2, part3, e convertili in ordine. I CSV escono nello stesso ordine, e il passaggio di riunione è solo concatenazione con la regola dell'intestazione della sezione precedente.
import json
rows = json.load(open('big.json'))
chunk = 50000
for i in range(0, len(rows), chunk):
part = rows[i:i+chunk]
json.dump(part, open('part%d.json' % (i // chunk + 1), 'w'))
print('part%d.json:' % (i // chunk + 1), len(part), 'rows')
# terminal alternative (standard jq slice syntax):
# jq '.[0:50000]' big.json > part1.json
# jq '.[50000:100000]' big.json > part2.jsonQuando il file è troppo grande per qualsiasi scheda del browser
C'è un limite onesto, e vale la pena nominarlo chiaramente. Se il browser non riesce proprio ad analizzare il file in memoria, nessun convertitore online può aiutare, perché ognuno di loro prima analizza. I sintomi sono inequivocabili: la scheda propone di chiudere la pagina durante il caricamento, il browser segnala un errore di memoria esaurita, oppure il file non finisce mai di caricarsi. A quel punto il file è cresciuto oltre la scheda, e il lavoro appartiene a uno script in esecuzione sulla tua macchina, che può elaborare i dati senza mai trattenerli tutti come oggetti contemporaneamente.
Dov'è quel limite in pratica. Dipende dalla RAM della tua macchina e da quanto sono annidati i dati, ma i file di centinaia di megabyte di testo JSON sono il punto in cui le schede iniziano a morire sui portatili normali. Un file da 25 MB si è convertito qui in circa due secondi con margine di riserva; un file da 250 MB è un animale diverso, circa dieci volte la pressione sulla memoria, e un file da 1 GB è saldamente territorio da script. Se non sai da che parte della linea sei, il test dei 60 secondi della sezione precedente risponde empiricamente: una scheda morta è il file che ti dice che ha bisogno di uno script.
Un'altra nota onesta. Alcuni siti pubblicizzano "dimensione file illimitata" per la conversione online. Quello che di solito intendono è che i loro server accettano il caricamento, il che sposta semplicemente il limite dal tuo browser alla loro coda, e nel processo consegna i tuoi dati a terzi. Per i file abbastanza grandi da contare, quello scambio raramente vale.
La strada dello script: Python in blocchi che resiste ai dati irregolari
Quando il browser è fuori gioco, questo è lo script. Legge l'intero file una volta, appiattisce ogni blocco con pandas e scrive un CSV per blocco, e gestisce il caso dei dati irregolari che la ricetta del browser non può: righe con chiavi diverse. Il trucco è calcolare prima l'elenco completo delle colonne da tutti i dati, poi forzare ogni blocco su quelle colonne prima di scrivere. Verificato sulla macchina di build contro un file da 30.000 righe dove alcune righe portavano un campo notes e altre un campo flag: tre CSV di blocco uniti in un output byte per byte identico alla conversione del file in una sola volta, in 0,4 secondi.
Il modello scala oltre ciò che il browser potrebbe mai. Poiché ogni blocco viene convertito e scritto prima che il successivo venga caricato, il picco di memoria resta proporzionale alla dimensione del blocco, non del file. Aumenta la dimensione del blocco per velocità su una macchina grande, abbassala se la memoria è scarsa. E lo stesso trucco dell'unione delle colonne ti protegge ogni volta che le esportazioni cambiano forma a metà, cosa che le esportazioni reali amano fare.
Resta una scelta di giudizio: un CSV per blocco contro un unico file unito. Lo script qui sotto scrive un file per blocco, che mantiene ogni pezzo utilizzabile in modo indipendente. Se vuoi un unico file, concatenali con la stessa regola dell'intestazione della ricetta del browser: conserva l'intestazione del primo file, elimina le altre.
import json, pandas as pd
rows = json.load(open('big.json'))
cols = list(pd.json_normalize(rows).columns) # union of all keys
chunk = 50000
for i in range(0, len(rows), chunk):
part = pd.json_normalize(rows[i:i+chunk]).reindex(columns=cols)
part.to_csv('out_part%d.csv' % (i // chunk + 1), index=False)
# merge the parts into one CSV (keep one header):
# head -n 1 out_part1.csv > merged.csv
# tail -n +2 -q out_part*.csv >> merged.csvFile grandi e privacy: perché il lato client conta di più su larga scala
I file grandi sono di solito file sensibili. Un'esportazione da 500.000 righe è raramente un dataset giocattolo; sono clienti, ordini, log o cartelle cliniche. È esattamente quando l'architettura del convertitore conta di più, ed è il vantaggio silenzioso di farlo in una scheda del browser invece che sul server di qualcuno.
Il convertitore su questa pagina gira interamente nel tuo browser dopo il caricamento della pagina. È stato verificato contro il codice sorgente della pagina per la nostra guida al download: il motore di conversione è importato come codice client-side locale, e l'unica richiesta di rete in tutto il convertitore è il pulsante opzionale di recupero da URL, che gira solo quando lo clicchi e recupera solo l'indirizzo che digiti. I tuoi dati incollati o caricati non vengono mai inviati da nessuna parte, il che significa che nessuna terza parte vede mai il file, nessuna coda di caricamento in cui aspettare e nessuna policy di conservazione da leggere.
È anche per questo che la ricetta di suddivisione in blocchi qui sopra è sicura per i dati privati. Ogni blocco si converte sulla tua macchina, e i pezzi non la lasciano mai. Se il tuo file è abbastanza grande da richiedere la strada dello script, vale la stessa proprietà: lo script Python gira localmente, e niente in esso tocca la rete.
Cosa non fare con un file grande
Quattro errori si presentano costantemente. Primo, incollare decine di megabyte nella casella di input invece di usare il pulsante di caricamento. Il percorso di caricamento esiste proprio per questo, e incollare è il modo più lento per far entrare un file grande in qualsiasi pagina. Secondo, minimizzare il JSON sperando che si riduca abbastanza da contare. La minimizzazione risparmia forse il dieci percento sulle esportazioni tipiche, il che trasforma un file troppo grande in un file ancora troppo grande. Terzo, aprire un CSV da 500.000 righe in un foglio di calcolo per "controllarlo". I fogli di calcolo si fermano intorno a un milione di righe e diventano lenti molto prima; controlla il conteggio righe e verifica a campione l'inizio e la fine del file invece. Quarto, convertire a mano la stessa esportazione gigante ogni settimana. Se il file arriva con una cadenza, lo script Python della sezione precedente è una configurazione una tantum che batte cinquanta conversioni manuali.
E una cosa di cui non preoccuparsi: l'appiattimento. I dati annidati non cambiano in modo significativo la matematica delle dimensioni. L'interruttore di appiattimento trasforma gli oggetti annidati in colonne con notazione a punti, cosa che il motore fa nello stesso passaggio di tutto il resto, e le misurazioni qui sopra sono state tutte prese con l'appiattimento attivo.
Guide correlate
- Come appiattire JSON in CSV: cosa fa davvero l'interruttore di appiattimento (Guida 2026)
- Come convertire un file JSON in CSV: caricamento, Excel e riga di comando (Guida 2026)
- Qual è il miglior strumento per convertire JSON in CSV? 6 opzioni, testate (Guida 2026)
- Cos'è un file JSON e un file CSV? Guida per principianti a entrambi i formati (Guida 2026)
- What Does Flattening a JSON Mean? Cosa significa davvero il termine (Guida 2026)
- What is JSON to CSV online: le tre parole spiegate (guida 2026)
- what is JSON to CSV converter online: anatomia dello strumento (guida 2026)
- convert json to csv locally: convertire JSON in CSV sul tuo computer, senza caricare il file (Guida 2026)
- Quali sono i modi per convertire JSON in CSV in locale? 6 metodi a confronto (Guida 2026)
- Il file CSV si apre in un'unica colonna in Excel: perché succede e come correggerlo (Guida 2026)
- Perché il tuo CSV mostra caratteri strani in Excel e come risolvere il problema di codifica (Guida 2026)
- Perché Excel elimina gli zeri iniziali dai codici del tuo CSV e come conservarli (Guida 2026)
- Perché Excel cambia le date del CSV e come mantenerle invariate (Guida 2026)
- Perché salvare un CSV in Excel lo modifica e come tenere al sicuro l'originale (Guida 2026)
- Perché Excel non apre il tuo file CSV troppo grande e cosa fare invece (Guida 2026)
Domande frequenti
Esiste uno strumento online gratuito per convertire file JSON grandi in CSV?
Sì, il convertitore su questa pagina è gratuito senza registrazione e senza limiti di dimensione file dalla nostra parte. Carica il file, osserva il badge di stato confermare il conteggio righe e scarica il CSV. I tuoi dati non lasciano mai la tua macchina perché la conversione gira interamente nel tuo browser. Per i file oltre qualche centinaio di migliaia di righe, prima dividi il file in blocchi usando la ricetta di questa guida.
Qual è la dimensione massima di un file JSON che posso convertire online?
Non c'è un limite rigido su questa pagina; il limite pratico è la memoria della scheda del tuo browser. Misurato con il motore della pagina stessa, 25 MB / 500.000 righe si convertono in circa due secondi, con margine di riserva. Oltre, la memoria della scheda per l'analisi e la tabella di anteprima diventa il limite, non la conversione. Se la scheda si blocca o muore, suddividi il file in blocchi o passa alla strada dello script di questa guida.
Come divido un file JSON grande in file più piccoli?
Dividilo come dati, non come testo, così ogni pezzo resta un JSON valido. In Python: carichi il file con json.load, affetti la lista in pezzi, riversi ogni pezzo con json.dump. Al terminale: jq '.[0:50000]' big.json > part1.json prende i primi cinquantamila elementi. Non tagliare mai il file in un editor di testo, che rompe parentesi e virgolette al confine.
La suddivisione in blocchi cambierà il mio output CSV?
No, finché ogni blocco ha la stessa forma. Verificato sulla macchina di build: un file diviso a metà, convertito in due pezzi e riunito mantenendo un'unica intestazione ha prodotto un output byte per byte identico alla conversione dell'intero file in una volta. L'eccezione sono i dati irregolari dove le righe portano chiavi diverse; per quelli, usa lo script di questa guida, che calcola l'elenco completo delle colonne prima di scrivere qualsiasi blocco.
È sicuro convertire online un file JSON grande con dati sensibili?
Su questa pagina, sì. La conversione gira interamente nel tuo browser: il motore è codice client-side locale e il tuo file non viene mai caricato su alcun server. L'unica richiesta di rete nel convertitore è il pulsante opzionale di recupero da URL. Questo rende la strada del browser, e la ricetta di suddivisione in blocchi, sicura per le esportazioni private che non affideresti a un servizio di terze parti.
Perché il browser si blocca quando converto un file JSON grande?
Di solito la tabella di anteprima, non la conversione. Mostrare centinaia di migliaia di righe di tabella è molto più costoso che produrre il testo CSV. Incollare un file enorme nella casella di input invece di caricarlo peggiora le cose. Carica il file, e se la scheda fatica ancora, converti in blocchi: ogni pezzo resta abbastanza piccolo da far mostrare l'anteprima all'istante.
Posso convertire un file JSON da 1 GB in CSV nel browser?
Onestamente, no. Un file di quella dimensione supera ciò che una scheda del browser può analizzare in memoria, e nessun convertitore online cambia questo. Usa uno script sulla tua macchina: Python con json_normalize in blocchi come mostrato in questa guida, oppure uno strumento in streaming per dati JSON-lines. Se il file è un unico array gigante, considera di convertirlo prima in JSON-lines, un oggetto per riga, che scorre in streaming in modo pulito.
Provalo ora sul tuo file grande
Incolla un pezzo del tuo JSON grande e guarda il convertitore gestirlo in millisecondi. Gratis, senza registrazione, gira interamente nel tuo browser.
Apri il convertitore JSON in CSV