So werden INI-, JSON- und YAML-Einstellungen konvertiert

Konfiguration einfügen und eine der fünf Richtungen wählen: INI nach JSON, INI nach YAML, INI nach TOML, JSON nach INI oder YAML nach INI. Konvertieren schreibt das Ergebnis unter die Messwerte, Kopieren oder Herunterladen speichert es als converted-config.json, .yaml, .toml oder .ini.

Alles läuft im Browser: kein Upload, keine Anfrage an diese Seite, und der Editor arbeitet offline weiter. TOML ist nur eine Ausgabe: die Werkbank liest TOML nie ein.

  1. Die Konfiguration in den Editor einfügen oder Beispiel laden drücken, um ein kleines INI-Beispiel mit einem Abschnitt zu sehen.
  2. Die Richtung wählen: INI nach JSON, INI nach YAML, INI nach TOML, JSON nach INI oder YAML nach INI.
  3. Konvertieren drücken. Ein leerer Editor, ein unlesbares JSON- oder YAML-Dokument oder eine INI-Zeile, die weder Schlüssel = Wert noch [Abschnitts]-Kopfzeile ist, bricht den Lauf ab; die Statuszeile nennt Zeile und Spalte.
  4. Die Messwerte lesen (Einstellungen oberster Ebene, Eingabezeilen, Größe von Eingabe und Ausgabe) und danach die Hinweise: zusammengeführte Abschnitte, wiederholte Schlüssel, weggelassene Null-Werte und Werte, die INI nicht halten kann.
  5. Mit Kopieren oder Herunterladen den konvertierten Text mitnehmen und vor der nächsten Datei Leeren drücken.

Was die Konvertierung erhält und was nicht

Wie die INI-Seite gelesen wird

Der Leser folgt den Konventionen von .ini-Dateien: Zeilen Schlüssel = Wert oder Schlüssel: Wert, [Abschnitts]-Kopfzeilen und Kommentare mit ; oder #. Ein Kommentar in der Zeile beginnt erst, wenn das Zeichen nach einem Leerzeichen steht; port=8080 ; Hinweis behält also 8080 und color=#ff0000 behält seinen Wert. Leere Zeilen werden übersprungen, und jede Einstellung nach einer Kopfzeile gehört zu diesem Abschnitt.

Ein Wert darf in Anführungszeichen stehen: doppelte Anführungszeichen verstehen die Escapes für Backslash, Anführungszeichen, Zeilenumbruch, Wagenrücklauf, Tabulator und Codepunkt, einfache Anführungszeichen sind wörtlich. Ein Schlüssel mit =, :, #, ; oder Klammern muss genauso in Anführungszeichen stehen. Eine Kopfzeile darf einen Kommentar tragen: [database] ; Zugangsdaten.

Wiederholungen werden zusammengeführt statt abgelehnt: ein zweites [database] ergänzt das erste, ein wiederholter Schlüssel behält den letzten Wert, und ein Abschnitt mit dem Namen einer früheren Einstellung ersetzt diese. Jede Entscheidung erscheint in den Hinweisen, statt die Datei still zu verändern.

Werttypen: was Text bleibt

Ein Wert wird nur dann zur Zahl, wenn JavaScript diese Zahl Zeichen für Zeichen wieder ausgibt. 8080, -7 und 3.5 sind Zahlen; 007, 0123456789, 1.50, +1, 1e3 und jede Kennung über 2^53 bleiben Text, sodass Postleitzahl, Telefonnummer oder Version nie umgeschrieben werden. true und false werden zu Booleans, null, nil und ~ zu null, und yes, no, on und off bleiben Text.

JSON und YAML behalten die Typen ihres eigenen Parsers. Auf dem Weg nach INI wird eine Zeichenkette, die als Zahl, Boolean oder null zurückgelesen würde, in Anführungszeichen geschrieben ("8080", "true", "null"), und eine Zeichenkette mit Kommentarzeichen, führendem oder folgendem Leerzeichen oder Zeilenumbruch wird mit Escapes zitiert; der Rundlauf liefert also denselben Wert mit demselben Typ.

Was jedes Ziel erhält

INI nach JSON, YAML und TOML erhalten Struktur und Werttypen. TOML kennt kein null, daher wird eine Einstellung mit null weggelassen und in den Hinweisen genannt, und ein Name, den TOML anders liest, wird zitiert: [my section] wird zu ["my section"].

JSON nach INI und YAML nach INI flachen das Dokument auf eine Ebene ab. Eine Liste oder ein verschachteltes Objekt wird als kompaktes JSON geschrieben (tags=["a","b"]) und gemeldet; eine Liste oder ein einzelner Wert auf oberster Ebene lässt sich nicht als INI schreiben und bricht den Lauf ab; ein leeres Dokument meldet, dass die INI-Ausgabe leer ist.

INI hat nur eine Ebene von Abschnitten, eine eingerückte Fortsetzungszeile wird nicht gelesen, und Kommentare aus der Eingabe gelangen in keine Ausgabe.

Zuletzt verwendet: