TOML-in-JSON-Konverter
Konvertieren Sie Daten sofort beim Tippen aus TOML in JSON, direkt im Browser.
Eingabe
Ausgabe
Readme
Was sind diese Datenformate?
Programme speichern strukturierte Daten wie Einstellungen, Datensätze und Listen in Textformaten, die jeweils eine eigene Schreibweise haben. Ein Konverter ist nützlich, wenn ein Programm Daten in einem Format ausgibt, das ein anderes Programm nicht lesen kann, oder wenn sich ein Format für die jeweilige Aufgabe leichter lesen oder bearbeiten lässt.
| Format | Darstellung der Daten | Typische Verwendung |
|---|---|---|
| JSON | Objekte in geschweiften Klammern, Listen in eckigen Klammern, Text in doppelten Anführungszeichen | Web-APIs und App-Einstellungen |
| YAML | Eingerückte Zeilen im Format key: value, Listeneinträge beginnen mit - |
Docker Compose, Kubernetes und CI-Pipeline-Dateien |
| XML | Elemente in Tags, die Attribute enthalten können | Dokumente, RSS-Feeds und SOAP-Webdienste |
| TOML | Zeilen im Format key = value unter [table]-Überschriften |
Konfigurationsdateien wie Cargo.toml und pyproject.toml |
| TOON | Eingerückte Zeilen, mit Listen von Datensätzen als Zeilen unter ihren Feldern | Strukturierte Daten, die an KI-Sprachmodelle gesendet werden |
| CSV | Eine Kopfzeile, danach eine Zeile pro Datensatz; Werte sind durch Kommas getrennt | Tabellen und Datenbankexporte |
| TSV | Wie CSV, aber mit Tabulatoren zwischen den Werten | Aus einer Tabelle kopierte Zellen |
| MessagePack | Binärdaten, hier als hexadezimale Bytes dargestellt | Kompakte Nachrichten zwischen Programmen |
| JSON5 | JSON, das auch Kommentare, einfache Anführungszeichen und Schlüssel ohne Anführungszeichen erlaubt | Von Hand bearbeitete Konfigurationsdateien |
| JSONL | Ein JSON-Wert pro Zeile, auch JSON Lines oder NDJSON genannt | Protokolle und Datensätze |
| INI | Zeilen im Format key = value unter [section]-Überschriften |
Programmeinstellungen, zum Beispiel in php.ini |
| Properties | Zeilen im Format key = value mit durch Punkte getrennten Schlüsseln |
Java-Apps, zum Beispiel Dateien wie Spring Boots application.properties |
Beschreibung des Tools
Dieses Tool konvertiert Daten zwischen diesen 12 Formaten: JSON, YAML, XML, TOML, TOON, CSV, TSV, MessagePack, JSON5, JSONL, INI und Java-Properties. Alle Datenformatkonverter hier funktionieren auf die gleiche Weise – vom allgemeinen Datenformatkonverter bis hin zu Konvertern für einzelne Formatpaare wie JSON zu YAML, CSV zu JSON oder XML zu JSON: Beim Öffnen sind die Formate ausgewählt, die im Namen des Tools stehen. Über die Menüs „Quelle“ und „Ziel“ kannst du beliebige andere Formate auswählen. Füge deine Daten ein oder gib sie ein. Das Ergebnis erscheint während der Eingabe in einem Code-Editor mit Syntaxhervorhebung und kann direkt kopiert werden. Mit der Schaltfläche zum Vertauschen wird die Konvertierungsrichtung umgekehrt und das Ergebnis zur neuen Eingabe.
Ist die Eingabe im Quellformat ungültig, erklärt die Fehlermeldung, was nicht stimmt, üblicherweise mit Zeilen- und Spaltenangabe des Problems.
Deine Daten werden im Browser konvertiert und niemals hochgeladen.
Beispiel
Dieses JSON:
{
"users": [
{ "id": 1, "name": "Ann", "admin": true },
{ "id": 2, "name": "Bo", "admin": false }
]
}wird zu diesem YAML:
users:
- id: 1
name: Ann
admin: true
- id: 2
name: Bo
admin: falsezu diesem CSV mit einer Zeile pro Nutzer:
id,name,admin
1,Ann,true
2,Bo,falseund zu diesem TOON:
users[2]{id,name,admin}:
1,Ann,true
2,Bo,falseWie die Formate ineinander umgewandelt werden
Nicht alle Formate können dieselben Datentypen speichern. Daher gelten bei manchen Konvertierungen die folgenden Regeln:
- CSV und TSV speichern Tabellen. Die erste Zeile enthält die Spaltennamen, jede weitere Zeile wird zu einem Objekt. Verschachtelte Objekte werden zu Spalten, deren Namen den jeweiligen Pfad angeben, und Listen werden als JSON-Text in ihrer Zelle gespeichert. So wird
{"name": "Ann", "address": {"city": "Oslo"}, "tags": ["a", "b"]}zu den Spaltenname,address.cityundtags. Bei der Rückkonvertierung werden daraus wieder verschachtelte Objekte und Listen. Wenn die Daten ein Objekt mit einer einzelnen Liste sind, etwa{"users": [...]}, entsprechen die Zeilen den Elementen dieser Liste. Eine Liste aus Listen wird zu Zeilen ohne Kopfzeile. - Textwerte: CSV, TSV, XML, INI und Properties speichern nur Text. Daher wandeln die Konverter
trueundfalsein die booleschen Werte true und false um und schreiben einfache Zahlen wie42oder3.5als Zahlen. Werte wie007,1.50oder1e3bleiben Text, damit Postleitzahlen und Versionsnummern unverändert erhalten bleiben. - XML-Attribute werden zu Schlüsseln, die mit
@beginnen. Der Text eines Elements mit Attributen wird zu#text:<price currency="USD">44.95</price>wird zu{"@currency": "USD", "#text": 44.95}. Wiederholte Elemente werden zu einer Liste. Bei der Konvertierung nach XML werden Schlüssel, die mit@beginnen, wieder zu Attributen. Ein Objekt mit einem einzelnen Schlüssel, dessen Wert keine Liste ist, wird zum Wurzelelement. Andere Daten kommen in ein<root>-Element; jedes Element einer Liste auf der obersten Ebene wird in ein<item>-Element eingefügt. Zeichen, die in XML-Namen nicht erlaubt sind, etwa Leerzeichen, werden zu_. - TOML, INI und Properties können auf der obersten Ebene nur benannte Werte speichern. Daher werden Listendaten unter dem Namen
itemsund ein einzelner Wert untervaluegeschrieben. TOML kennt keinen Nullwert, daher werden Nullwerte ausgelassen. - INI schreibt verschachtelte Objekte als Abschnitte, etwa
[server.ssl], Wertelisten als Zeilen im Formatkey[] = valueund Objektlisten als Abschnitte, die nach ihrer Position benannt sind, etwa[users.0]. - Properties-Schlüssel verbinden verschachtelte Namen mit Punkten und nummerieren Listenelemente in eckigen Klammern, etwa
app.hosts[0], wie es Spring Boot macht. Bei der Konvertierung nach YAML oder JSON werden diese Schlüssel zu verschachtelten Objekten und Listen. Eineapplication.properties-Datei wird daher in die Struktur einerapplication.yml-Datei umgewandelt. Zeichen außerhalb von Latin-1 werden als\u-Escape-Sequenzen geschrieben. - YAML-Ergebnisse setzen Text in Anführungszeichen, den YAML-1.1-Parser andernfalls als etwas anderes interpretieren würden, etwa
on,yesoder ein Datum. So erhalten YAML-1.1- und YAML-1.2-Parser dieselben Daten. Eine YAML-Datei mit mehreren durch---getrennten Dokumenten wird zu einer Liste dieser Dokumente, und<<-Merge-Schlüssel werden aufgelöst. - MessagePack ist ein Binärformat. Daher lesen und schreiben die Tools es als hexadezimale Bytes:
{"a": 1}wird zu81 A1 61 01. Die Eingabe darf Leerzeichen, Kommas und0xvor jedem Byte enthalten. Mehrere aufeinanderfolgende Nachrichten werden zu einer Liste. - JSONL-Ergebnisse enthalten jedes Listenelement in einer eigenen Zeile.
- Ganze Zahlen, die für JavaScript-Zahlen zu groß sind, etwa 64-Bit-IDs, behalten alle ihre Ziffern.
- TOML-Datums- und Zeitangaben sowie MessagePack-Zeitstempel werden in Text umgewandelt, etwa
1979-05-27T07:32:00Z.
Tipps
- Um Zellen aus einer Tabelle zu konvertieren, kopiere sie und füge sie als TSV ein: Tabellenprogramme kopieren Zellen als tabulatorgetrennten Text.
- CSV und TSV eignen sich für Daten, die aus einer Liste ähnlicher Datensätze bestehen. Tief verschachtelte Daten lassen sich in YAML, TOML oder TOON besser lesen.
- Kommentare in YAML-, XML-, TOML-, JSON5-, INI- und Properties-Dateien bleiben nicht erhalten, da die Konverter nur die Daten übernehmen.