Vai al contenuto
LeedyBox
Sostieni

Convertitore JSON / CSV / YAML / SQL / XML

Converti e convalida dati localmente nel browser per le attività di sviluppo più comuni.

Converti in:

L’input SQL supporta istruzioni INSERT INTO ... VALUES (stili MySQL, PostgreSQL, SQL Server e SQLite); incolla i risultati di SELECT come CSV. I valori CSV vengono letti come testo. Gli attributi XML sono conservati in "@attributes" e il testo di un elemento accanto ad attributi o elementi figli in "#text". Tutto viene elaborato localmente nel browser.

Verifica i risultati prima di usarli. Lo strumento è fornito così com’è, senza garanzia, e i risultati possono essere incompleti o errati. Termini di servizio

I formati non si corrispondono 1:1. Tipi di dati, valori annidati, caratteri speciali e numeri molto grandi possono cambiare durante la conversione. L’SQL generato non viene verificato sul tuo database, quindi provalo su una copia prima di eseguirlo su dati reali.

Come si usa

  1. Incolla i dati nel riquadro «Dati di input». Lascia il menu «Input» su «Rilevamento automatico», oppure scegli JSON, YAML, CSV, SQL o XML se conosci il formato.
  2. Fai clic su un formato accanto a «Converti in». Il risultato compare in «Output», e un messaggio sopra i riquadri conferma la conversione ed elenca ciò che dovresti controllare, come numeri grandi che potrebbero aver perso precisione, chiavi rinominate o istruzioni SQL ignorate. Se l’input non può essere letto, il messaggio mostra l’errore e «Output» viene svuotato.
  3. Regola le opzioni mostrate per quel formato, come «Separatore» e «Dati annidati» per CSV, «Database SQL», «Istruzione» e «Tabella» per SQL, o «Radice» e «Voce» per XML. Ogni modifica converte di nuovo l’input corrente, quindi non devi fare di nuovo clic sul pulsante del formato.
  4. Per controllare l’input senza convertirlo, fai clic su «Convalida sintassi». Lo strumento indica che la sintassi è valida oppure che cosa non va, con la riga e la colonna quando il parser le fornisce.
  5. Controlla il risultato in «Output», poi fai clic su «Copia il risultato». «Cancella» svuota entrambi i riquadri.

Domande frequenti

I dati che incollo vengono inviati da qualche parte?

No. I dati vengono analizzati e convertiti nel browser con JavaScript, e lo strumento non li carica su LeedyBox né li salva. All’apertura, la pagina carica due librerie open source direttamente da leedybox.com, js-yaml per YAML e PapaParse per CSV; vengono eseguite all’interno della pagina e i tuoi dati non vengono inviati da nessuna parte.

Come sceglie il formato il «Rilevamento automatico», e quando conviene sceglierlo manualmente?

Un input che inizia con { o [ viene letto come JSON, uno che inizia con < come XML, e uno che inizia con una parola chiave SQL come INSERT, CREATE, SET, START, UPDATE o WITH seguita da uno spazio, oppure con un commento -- o /*, come SQL. Tutto il resto viene provato come CSV quando la prima riga contiene una virgola, una tabulazione o un punto e virgola, e poi come YAML. Scegli tu il formato nel menu «Input» in questi casi: quando un CSV o uno YAML inizia con una parola che è anche una parola chiave SQL, per esempio una riga di intestazione CSV che comincia con Start date o Update time, perché viene letto come SQL e la lettura non riesce; quando ogni riga di un input YAML contiene lo stesso numero di virgole, come title: Hello, world seguito da tags: news, tech, perché può essere letto come CSV; con un CSV delimitato da barre verticali o con una sola colonna, che il rilevamento automatico non riconosce; e quando un input YAML o CSV non viene letto, perché il rilevamento automatico indica solo che il formato non è stato riconosciuto, mentre con un formato scelto vedi l’errore del parser stesso e, nella maggior parte dei casi, il punto in cui si è verificato.

Accetta JSON con commenti, virgole finali o un oggetto per riga?

Con il menu «Input» impostato su JSON viene accettato solo JSON valido, quindi usa questa impostazione con «Convalida sintassi» per verificare che il testo sia JSON valido. Con «Rilevamento automatico», un input che inizia con { o [ ma non è JSON valido viene letto, quando possibile, come sintassi a flusso YAML, e una nota lo segnala: le virgole finali, le virgolette singole e le chiavi senza virgolette funzionano, ma una chiave senza virgolette richiede uno spazio dopo i due punti, perché {a:1} viene letto come una chiave chiamata a:1 con valore null. I commenti // e /* */ non sono commenti in YAML: possono finire dentro chiavi o valori, o impedire la lettura dell’input, quindi rimuovili prima. JSON Lines (NDJSON) è disponibile come formato di output ma non viene letto come input quando ha più di una riga; racchiudi le righe tra [ e ] con una virgola dopo ogni riga tranne l’ultima.

Perché 1.10 è diventato 1.1, o 01234 è diventato 1234, convertendo da YAML?

I valori YAML senza virgolette che sembrano numeri vengono letti come numeri, quindi una versione come 1.10 diventa 1.1, un CAP come 01234 diventa 1234 e 0x1F diventa 31; nello YAML metti questi valori tra virgolette per mantenerli come testo. Il convertitore legge YAML con lo schema core di js-yaml, che per booleani e date segue YAML 1.2, quindi yes, no, on, off e date come 2026-10-02 restano testo, e diventano booleani solo le forme di true e false, come True o FALSE. Quando JSON viene convertito in YAML, le stringhe che potrebbero essere fraintese, come "01234", "1.10" o "yes", vengono scritte tra virgolette.

Perché un elemento XML è un oggetto in un file e un array in un altro?

Gli elementi figli che si ripetono sotto lo stesso genitore diventano un array, ma un elemento singolo diventa un valore semplice o un oggetto, quindi <items> con un solo <item> dà una struttura diversa da <items> con due. Ogni valore XML viene letto come testo, quindi <id>1</id> diventa "1" e 007 conserva gli zeri, mentre commenti e istruzioni di elaborazione vengono scartati. Per l’output CSV e SQL, le righe vengono prese da un array all’interno di contenitori con una sola chiave come <items>, quindi con un solo <item> l’intero elemento finisce come testo JSON in un’unica colonna; per CSV, «Appiattisci (colonne a.b.c)» lo divide in colonne.

Posso incollare un dump di MySQL o PostgreSQL come input SQL?

Sì, purché le righe siano in istruzioni INSERT INTO ... VALUES. CREATE TABLE, SET, LOCK e istruzioni di configurazione simili vengono saltate, altre istruzioni come DROP TABLE vengono ignorate con una nota, e le righe di più tabelle vengono unite in un unico elenco, quindi incolla una tabella alla volta se le colonne sono diverse. Per impostazione predefinita mysqldump omette i nomi delle colonne, quindi le colonne vengono chiamate column1, column2 e così via, a meno che il dump non venga creato con --complete-insert. Per impostazione predefinita pg_dump scrive le righe come blocchi COPY, che lo strumento non legge, quindi crea il dump con --column-inserts. Se il dump contiene anche funzioni o stored procedure, incolla solo le istruzioni INSERT: lo strumento divide l’input in corrispondenza dei punti e virgola, quindi un INSERT all’interno del corpo di una funzione può essere letto come dati o interrompere la conversione.

Perché i numeri di un file CSV escono tra virgolette, e quali tipi di colonna usa «CREATE TABLE + INSERT»?

Ogni valore CSV viene trattato come testo: così si conservano gli zeri iniziali, come in 01234, ma 42 diventa "42" in JSON e '42' in SQL, e una cella vuota diventa una stringa vuota invece di null o NULL. Il tipo di ogni colonna viene scelto in base ai valori di quella colonna, quindi una tabella creata da un CSV ha colonne di testo: VARCHAR(255), oppure TEXT quando un valore supera i 255 caratteri (NVARCHAR(255) o NVARCHAR(MAX) per SQL Server, TEXT per SQLite). Quando l’input è JSON o YAML e tutti i valori di una colonna sono numeri senza virgolette, oppure sono tutti true o false, la colonna riceve invece un tipo numerico o booleano: un tipo intero (INT, INTEGER o BIGINT, a seconda del database e della grandezza dei numeri), un tipo a virgola mobile per i decimali, oppure BOOLEAN (BIT per SQL Server, INTEGER per SQLite). L’istruzione non ha chiave primaria, indici né vincoli NOT NULL, quindi aggiungili prima di eseguirla se la tua tabella ne ha bisogno.