Convertitore da TOML a MessagePack
Converti dati da TOML a MessagePack all'istante mentre scrivi, direttamente nel browser.
Input
Output
Leggimi
Cosa sono questi formati di dati?
I programmi archiviano e scambiano dati strutturati, come impostazioni, record ed elenchi, in formati di testo che li rappresentano ciascuno a modo proprio. Un convertitore è utile quando un programma fornisce dati in un formato che un altro non riesce a leggere, oppure quando un formato è più facile da leggere o modificare per il lavoro da svolgere.
| Formato | Come rappresenta i dati | Dove si trova |
|---|---|---|
| JSON | Oggetti tra parentesi graffe, elenchi tra parentesi quadre, testo tra virgolette doppie | API Web e impostazioni delle app |
| YAML | Righe key: value con rientro, elementi degli elenchi che iniziano con - |
Docker Compose, Kubernetes e file di pipeline CI |
| XML | Elementi racchiusi in tag, che possono avere attributi | Documenti, feed RSS e servizi Web SOAP |
| TOML | Righe key = value sotto intestazioni [table] |
File di configurazione come Cargo.toml e pyproject.toml |
| TOON | Righe con rientro, con elenchi di record disposti in righe sotto i rispettivi campi | Dati strutturati inviati ai modelli linguistici di IA |
| CSV | Una riga di intestazione, seguita da una riga per record; i valori sono separati da virgole | Fogli di calcolo ed esportazioni di database |
| TSV | Come CSV, ma con tabulazioni tra i valori | Celle copiate da un foglio di calcolo |
| MessagePack | Dati binari, rappresentati come byte esadecimali nella scheda Testo | Messaggi compatti tra programmi |
| JSON5 | JSON che consente anche commenti, virgolette singole e chiavi senza virgolette | File di configurazione scritti a mano |
| JSONL | Un valore JSON per riga, detto anche JSON Lines o NDJSON | Log e insiemi di dati |
| INI | Righe key = value sotto intestazioni [section] |
File delle impostazioni dei programmi, come php.ini |
| Properties | Righe key = value con chiavi separate da punti |
App Java, come i file application.properties di Spring Boot |
Descrizione dello strumento
Questo strumento converte i dati tra questi 12 formati: JSON, YAML, XML, TOML, TOON, CSV, TSV, MessagePack, JSON5, JSONL, INI e Java properties. Tutti i convertitori di formati di dati qui funzionano allo stesso modo, dal Convertitore generale di formati di dati a quelli dedicati a una singola coppia, come da JSON a YAML, da CSV a JSON o da XML a JSON: si avviano con i formati indicati nel nome, mentre i menu Sorgente e Destinazione permettono di scegliere qualsiasi altro formato.
I convertitori accettano dati come testo che incolli o digiti, oppure come file, e restituiscono testo o file. Scegli quale con le schede File e Testo in alto, sul lato sorgente e sul lato destinazione. Entrambi i lati partono da Testo.
- Testo in ingresso: incolla o digita i tuoi dati, che vengono convertiti man mano che scrivi.
- File in ingresso: scegli o trascina uno o più file. Il pulsante Sfoglia file mostra solo i file nel formato sorgente, ma i file trascinati possono essere in uno qualsiasi dei 12 formati, e ognuno viene convertito dal formato indicato dalla sua estensione, quindi un file .yaml viene convertito come YAML anche nel convertitore da JSON a XML. Un file trascinato con un’altra estensione, come .txt, viene convertito dal formato sorgente. Vengono letti anche i file in UTF-16 o in una vecchia codifica, come Windows-1252.
- Testo in uscita: il risultato appare in un editor di codice con evidenziazione della sintassi, pronto da copiare. Quando vengono convertiti più file, il menu File sopra l’editor sceglie il file mostrato.
- File in uscita: i file convertiti compaiono in una griglia, ognuno con il proprio pulsante Scarica, e mantengono il nome con la nuova estensione. Il pulsante Scarica tutto salva tutti i file convertiti in un unico file ZIP, oppure un singolo file convertito così com’è. I dati incollati danno un file chiamato converted, ad esempio converted.yaml. I file convertiti sono testo UTF-8, tranne i file MessagePack, che sono binari.
Il pulsante di scambio inverte la conversione: il formato di destinazione diventa quello sorgente, i due lati si scambiano le schede e il risultato diventa il nuovo input.
Se l’input non è valido nel formato sorgente, il messaggio di errore indica cosa non va, di solito specificando la riga e la colonna del problema. Con i file, il messaggio di errore indica i file la cui conversione non è riuscita, e la scheda Testo sul lato destinazione mostra i dettagli del file visualizzato.
I tuoi dati vengono convertiti nel browser e non vengono mai caricati.
Esempio
Questo JSON:
{
"users": [
{ "id": 1, "name": "Ann", "admin": true },
{ "id": 2, "name": "Bo", "admin": false }
]
}diventa questo YAML:
users:
- id: 1
name: Ann
admin: true
- id: 2
name: Bo
admin: falsequesto CSV, con una riga per utente:
id,name,admin
1,Ann,true
2,Bo,falsee questo TOON:
users[2]{id,name,admin}:
1,Ann,true
2,Bo,falseCome si mappano i formati tra loro
I formati non possono contenere tutti gli stessi tipi di dati, quindi alcune conversioni seguono queste regole:
- CSV e TSV rappresentano una tabella. La prima riga indica i nomi delle colonne e ogni riga successiva diventa un oggetto. Gli oggetti annidati diventano colonne i cui nomi corrispondono al percorso, mentre gli elenchi diventano testo JSON nelle rispettive celle; perciò
{"name": "Ann", "address": {"city": "Oslo"}, "tags": ["a", "b"]}diventa le colonnename,address.cityetags. Nella conversione inversa, queste colonne tornano a essere oggetti annidati ed elenchi. Se i dati sono un oggetto che contiene un solo elenco, come{"users": [...]}, le righe corrispondono agli elementi dell’elenco, mentre un elenco di elenchi diventa un insieme di righe senza intestazione. - Valori di testo: CSV, TSV, XML, INI e properties contengono solo testo, quindi i convertitori trasformano
trueefalsenei valori booleani true e false e i numeri scritti in forma semplice, come42o3.5, in numeri. Valori come007,1.50o1e3restano testo, così i codici postali e i numeri di versione mantengono esattamente la loro forma. - Gli attributi XML diventano chiavi che iniziano con
@, mentre il testo di un elemento che ha attributi diventa#text:<price currency="USD">44.95</price>diventa{"@currency": "USD", "#text": 44.95}. Gli elementi ripetuti diventano un elenco. Nella conversione in XML, le chiavi che iniziano con@tornano a essere attributi. Un oggetto con una sola chiave il cui valore non è un elenco diventa l’elemento radice. Gli altri dati vengono inseriti in un elemento<root>, con ogni elemento dell’elenco principale contenuto in un elemento<item>. I caratteri non ammessi nei nomi XML, come gli spazi, diventano_. - TOML, INI e properties possono contenere solo valori con nome al livello superiore, quindi i dati rappresentati da un elenco vengono scritti sotto il nome
itemse un singolo valore sottovalue. TOML non prevede null, quindi i valori null vengono omessi. - INI rappresenta gli oggetti annidati come sezioni, per esempio
[server.ssl], gli elenchi di valori come righekey[] = valuee gli elenchi di oggetti come sezioni denominate in base alla loro posizione, per esempio[users.0]. - Le chiavi properties uniscono i nomi annidati usando punti e numerano gli elementi degli elenchi tra parentesi quadre, per esempio
app.hosts[0], come fa Spring Boot. Quando vengono convertite in YAML o JSON, queste chiavi diventano oggetti annidati ed elenchi, quindi un fileapplication.propertiesviene convertito nella struttura di un fileapplication.yml. I caratteri al di fuori di Latin-1 vengono scritti come sequenze di escape\u. - I risultati YAML racchiudono tra virgolette il testo che i lettori YAML 1.1 interpreterebbero come qualcos’altro, per esempio
on,yeso una data, in modo che i lettori YAML 1.1 e YAML 1.2 ottengano gli stessi dati. Un file YAML con più documenti separati da---diventa un elenco di documenti e le chiavi di merge<<vengono espanse. - MessagePack è binario. Come testo, gli strumenti lo leggono e lo scrivono come byte esadecimali:
{"a": 1}diventa81 A1 61 01, e l’input può contenere spazi, virgole e il prefisso0xprima di ogni byte. I file MessagePack, scelti o salvati nella scheda File, contengono i byte veri e propri, quindi un file .msgpack convertito è binario. Più messaggi consecutivi diventano un elenco. - Nei risultati JSONL, ogni elemento dell’elenco è su una riga distinta.
- I numeri interi troppo grandi per essere rappresentati dai numeri JavaScript, come gli ID a 64 bit, mantengono tutte le loro cifre.
- Le date e gli orari TOML e i timestamp MessagePack diventano testo, per esempio
1979-05-27T07:32:00Z.
Suggerimenti
- Per convertire celle da un foglio di calcolo, copiale e incollale come TSV: le app per fogli di calcolo copiano le celle come testo separato da tabulazioni.
- CSV e TSV sono adatti ai dati costituiti da un elenco di record simili. Per i dati con molti livelli di annidamento, YAML, TOML o TOON sono più leggibili.
- I commenti nei file YAML, XML, TOML, JSON5, INI e properties non vengono mantenuti, perché i convertitori trasferiscono solo i dati.