Da CSV a JSON

Converti dati CSV in array JSON o formato oggetto

Esegue in locale · Sicuro per incollare segreti
Il CSV apparirà qui…

Cos'è la conversione da CSV a JSON?

CSV (Comma-Separated Values) è un formato tabulare in testo semplice in cui ogni riga è un record e i campi all'interno di un record sono separati da un delimitatore, tipicamente una virgola. CSV è uno standard di interscambio fin dai primi giorni del personal computing, formalizzato nell'RFC 4180. Fogli di calcolo, database e strumenti di esportazione dati producono tutti CSV perché è semplice, compatto e leggibile da praticamente ogni linguaggio di programmazione.

JSON (JavaScript Object Notation) rappresenta dati strutturati come coppie chiave-valore e array ordinati. A differenza di CSV, JSON supporta oggetti annidati, valori tipizzati (numeri, booleani, null) e record di lunghezza variabile. Poiché JSON è nativamente compreso dai motori JavaScript, è il formato dominante per lo scambio di dati tra browser e server e per le risposte delle API REST. Queste caratteristiche lo rendono il formato predefinito per le API web, i file di configurazione e i database NoSQL come MongoDB e CouchDB.

Convertire CSV in JSON significa mappare ogni riga della tabella in un oggetto JSON, usando la riga di intestazione come nomi di proprietà e i valori delle celle come valori delle proprietà. Il risultato è tipicamente un array JSON di oggetti. Questa conversione è necessaria quando si devono inviare dati tabulari piatti a un sistema che si aspetta input JSON strutturato, come una REST API, un componente di tabella dati nel frontend, o un database orientato ai documenti.

Perché usare questo strumento?

Questo convertitore analizza il CSV nel browser, produce l'output JSON istantaneamente e non invia mai i dati a un server.

Conversione immediata
Incolla il CSV e ottieni l'output JSON subito. Nessuna attesa per un round-trip al server o un caricamento di file. La conversione avviene mentre scrivi.
🔒
Elaborazione con privacy garantita
I tuoi dati rimangono nel browser. Nulla viene trasmesso sulla rete. Sicuro per dataset interni, credenziali o dati personali che non devono lasciare il tuo dispositivo.
🔀
Rilevamento automatico del delimitatore
Lo strumento riconosce i delimitatori virgola, tabulazione, punto e virgola e pipe. Puoi anche impostare il delimitatore manualmente se il tuo file usa un separatore non comune.
📋
Copia o scarica
Copia il risultato JSON negli appunti con un clic o scaricalo come file .json. Pronto per l'uso diretto nel tuo codice, client API o importazione in database.

Casi d'uso della conversione CSV in JSON

Sviluppo frontend
Converti un export CSV da un tool di design o un foglio di calcolo in JSON per usarlo come dati mock per componenti React, Vue o Angular durante la prototipazione.
Seeding di API backend
Trasforma dump di database CSV in payload JSON per popolare una API REST o GraphQL. Molti ORM e strumenti di migrazione accettano fixture JSON per il caricamento iniziale dei dati.
Configurazione DevOps
Converti liste di inventario CSV o matrici di ambienti in JSON per l'uso in playbook Ansible, file di variabili Terraform o configurazioni di pipeline CI/CD.
Preparazione dati di test per QA
Trasforma matrici di test basate su fogli di calcolo in array JSON consumabili dai framework di test come Jest, pytest o Playwright per il testing basato sui dati.
Pipeline di data engineering
Converti l'output CSV da query SQL o export ETL in JSON per il caricamento in document store come MongoDB, Elasticsearch o la modalità di ingestione JSON di BigQuery.
Progetti didattici e di apprendimento
Converti rapidamente dataset CSV di esempio (Kaggle, portali open data governativi) in JSON per l'uso in corsi di sviluppo web, tutorial o progetti personali.

Riferimento ai delimitatori CSV

I file CSV non usano sempre le virgole. Il delimitatore dipende dalla localizzazione, dall'applicazione di esportazione e dal contenuto dei dati. Ecco i quattro delimitatori più comuni e quando ciascuno viene tipicamente utilizzato:

DelimitatoreStandardEstensioneNote
Comma (,)RFC 4180 default.csvMost common; Excel default export
Tab (\t)TSV variant.tsvAvoids quoting fields that contain commas
Semicolon (;)European locale CSV.csvUsed where comma is the decimal separator (DE, FR, BR)
Pipe (|)Fixed-width alternative.csvRare in field values, good for messy data

CSV vs JSON: differenze strutturali

Il divario tra i due formati spiega perché la mappatura delle intestazioni, l'inferenza dei tipi e la gestione dei valori mancanti richiedono scelte esplicite durante la conversione.

CSV
Formato piatto, orientato alle righe. Ogni record ha lo stesso numero di campi. Tutti i valori sono stringhe, a meno che il consumatore non inferisca i tipi. Nessun supporto per annidamento o record di lunghezza variabile. La riga di intestazione è opzionale secondo RFC 4180, ma necessaria per una conversione JSON significativa.
JSON
Formato ad albero, autodescrittivo. Ogni oggetto può avere chiavi diverse. I valori sono tipizzati: stringa, numero, booleano, null, oggetto o array. Supporta profondità di annidamento arbitraria. L'ordine delle proprietà non è garantito dalla specifica JSON (ECMA-404), anche se la maggior parte dei parser preserva l'ordine di inserimento.

Esempi di codice

Come convertire CSV in JSON in modo programmatico nei linguaggi e strumenti CLI più diffusi:

JavaScript (browser / Node.js)
// Simple CSV string → JSON array
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`

const [headerLine, ...rows] = csv.trim().split('\n')
const headers = headerLine.split(',')
const json = rows.map(row => {
  const values = row.split(',')
  return Object.fromEntries(headers.map((h, i) => [h, values[i]]))
})
// → [{ name: "Alice", age: "30", city: "Berlin" }, ...]

// With the built-in fetch + a library (Papa Parse)
import Papa from 'papaparse'
const result = Papa.parse(csvString, { header: true, dynamicTyping: true })
console.log(result.data) // typed numbers and booleans
Python
import csv, json, io

csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""

reader = csv.DictReader(io.StringIO(csv_string))
data = [row for row in reader]
print(json.dumps(data, indent=2))
# → [{"name": "Alice", "age": "30", "city": "Berlin"}, ...]

# With type coercion (age as int)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_json(orient="records", indent=2))
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
Go
package main

import (
	"encoding/csv"
	"encoding/json"
	"fmt"
	"strings"
)

func main() {
	input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
	r := csv.NewReader(strings.NewReader(input))
	records, _ := r.ReadAll()

	headers := records[0]
	var result []map[string]string
	for _, row := range records[1:] {
		obj := make(map[string]string)
		for i, h := range headers {
			obj[h] = row[i]
		}
		result = append(result, obj)
	}

	out, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(out))
	// → [{"age":"30","city":"Berlin","name":"Alice"}, ...]
}
CLI (jq + Miller)
# Using Miller (mlr) — handles quoting, types, and edge cases
mlr --icsv --ojson cat data.csv
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]

# Using csvjson from csvkit (Python-based)
csvjson data.csv

# Using jq with @csv (reverse: JSON → CSV)
# For CSV → JSON, pipe through Miller or Python
cat data.csv | python3 -c "
import csv, json, sys
reader = csv.DictReader(sys.stdin)
json.dump(list(reader), sys.stdout, indent=2)
"

Domande frequenti

Come gestisce il convertitore i file CSV senza riga di intestazione?
Se il CSV non ha una riga di intestazione, il convertitore usa chiavi generate automaticamente come "field1", "field2", ecc. Per risultati ottimali, aggiungi una riga di intestazione prima di convertire, oppure rinomina le chiavi nell'output JSON in seguito.
Cosa succede ai campi tra virgolette che contengono virgole o interruzioni di riga?
Il parser segue le regole di quotatura di RFC 4180. I campi racchiusi tra virgolette doppie possono contenere virgole, interruzioni di riga e persino virgolette doppie (precedute da raddoppio). Il convertitore rimuove le virgolette esterne e preserva il contenuto interno come singolo valore stringa JSON.
La conversione preserva i tipi di dati come numeri e booleani?
CSV è un formato non tipizzato; tutti i valori delle celle sono stringhe. Questo convertitore produce valori stringa per impostazione predefinita per evitare perdite di dati. Se hai bisogno di output tipizzato, analizza il risultato JSON nella tua applicazione e converti i campi esplicitamente. Librerie come Papa Parse (JavaScript) e pandas (Python) offrono opzioni di tipizzazione dinamica durante il parsing.
Posso convertire CSV con punto e virgola o tabulazioni invece delle virgole?
Sì. Lo strumento supporta virgola, tabulazione, punto e virgola e pipe come delimitatori. Seleziona il delimitatore corretto dal menu a tendina, oppure lascia che il rilevamento automatico lo identifichi. I punti e virgola sono comuni negli export CSV in formato europeo da Excel, dove la virgola funge da separatore decimale.
C'è un limite di dimensione per l'input CSV?
Poiché l'elaborazione avviene interamente nel browser, il limite pratico dipende dalla memoria disponibile sul tuo dispositivo. File fino a 10-20 MB si convertono senza problemi su hardware moderno. Per file molto grandi (centinaia di MB), usa un parser in streaming come Papa Parse in Node.js o il modulo csv di Python, che elaborano i dati riga per riga senza caricare tutto in memoria.
Come gestisco le righe CSV con numeri di colonne diversi?
I CSV irregolari (righe con meno o più campi rispetto all'intestazione) sono comuni negli export reali. Questo convertitore riempie i campi mancanti con stringhe vuote e ignora i campi in eccesso oltre il conteggio dell'intestazione. Se i tuoi dati sono sistematicamente irregolari, ispeziona il file sorgente alla ricerca di delimitatori non preceduti da escape o virgolette mancanti.
Qual è la differenza tra output come array JSON e oggetto JSON?
Un array JSON di oggetti è l'output standard: ogni riga CSV diventa un oggetto nell'array, con i nomi delle intestazioni come chiavi. Alcuni strumenti offrono anche un output "orientato alle colonne" in cui ogni intestazione diventa una chiave con un array di tutti i valori in quella colonna. Il formato array-di-oggetti è più comune per API, database e binding di dati nel frontend.