JSON in TOML umwandeln — Numio
Wandelt ein JSON-Objekt in TOML um. Verschachtelte Objekte werden zu [table]-Abschnitten, Arrays von Objekten zu [[array of tables]], und Schlüssel mit null-Werten entfallen, da TOML kein null kennt.
Eine JSON-Konfiguration in die Syntax von pyproject.toml, Cargo.toml, wrangler.toml oder einer Hugo-Konfiguration umwandeln.
Wann sie hilft
- Eine JSON-Konfiguration in die Syntax von pyproject.toml, Cargo.toml, wrangler.toml oder einer Hugo-Konfiguration umwandeln.
- Von einem Skript als JSON erzeugte Einstellungen in eine TOML-basierte Konfigurationsdatei übernehmen.
Anwendung
- Füge ein JSON-Objekt (die Wurzel muss ein Objekt sein, kein Array) in den linken Editor ein oder öffne über die Schaltfläche zum Laden einer Datei eine UTF-8-Datei.
- Prüfe das TOML rechts: Zuerst kommen skalare Schlüssel, dann [table]- und [[array]]-Abschnitte.
- Kopiere das Ergebnis und vergleiche es mit den dokumentierten Schlüsseln des Zielwerkzeugs, bevor du deine Konfiguration ersetzt.
JSON-Objekt
{
"title": "My App",
"port": 8080,
"debug": false,
"owner": { "name": "Ada", "since": "2024-01-05T10:00:00Z" },
"servers": [
{ "host": "a.example.com", "weight": 3 },
{ "host": "b.example.com", "weight": 1 }
],
"ports": [80, 443]
}TOML
title = "My App" port = 8_080 debug = false ports = [ 80, 443 ] [owner] name = "Ada" since = "2024-01-05T10:00:00Z" [[servers]] host = "a.example.com" weight = 3 [[servers]] host = "b.example.com" weight = 1
Details und Einschränkungen
Ganzzahlen ab 1000 erhalten Unterstriche als Trennzeichen (8080 wird zu 8_080). Das ist gültiges TOML und wird als dieselbe Zahl geparst.
Datums-Strings bleiben Strings in Anführungszeichen; JSON hat keinen Datumstyp, daher entstehen keine TOML-Datetime-Werte.
Schlüssel mit null-Werten werden stillschweigend weggelassen, und 1.0 aus JSON wird als Ganzzahl 1 geschrieben.
Läuft im Browser mit @iarna/toml. Eine Liste, die Objekte mit anderen Werten mischt, wird abgelehnt, da TOML-Arrays von Tabellen diese nicht aufnehmen können. Untertabellen werden um zwei Leerzeichen eingerückt; TOML ignoriert das.
FAQ
Kann ich ein JSON-Array auf oberster Ebene umwandeln?
Nein. Ein TOML-Dokument muss eine Tabelle sein, daher erklärt die Seite, dass das JSON ein Array ist, und schlägt vor, es in ein Objekt zu packen, z. B. {"items": [...]}.
Was passiert mit null-Werten?
Der Schlüssel entfällt. {"a": null} erzeugt eine leere Ausgabe. Verwende einen leeren String oder entferne den Schlüssel bewusst, wenn das Ziel ihn erwartet.
Warum enthalten Zahlen Unterstriche?
Der Serializer formatiert große Ganzzahlen mit _ als Zifferntrenner, was die TOML-Spezifikation erlaubt. Jeder TOML-Parser liest 8_080 als 8080.