INI-Umwandlung

INI nach JSON oder YAML, oder ein flaches JSON zurück nach INI.

Eine Abschnittsdatei und ein Baum

INI ist eine Folge von key = value, mit optionalen [section]-Köpfen. Diese Seite liest das als JSON oder YAML oder schreibt ein flaches JSON zurück nach INI. Verschachtelte Objekte und Arrays sind hier kein INI. YAML aus einem JSON-Dokument ist JSON nach YAML.

So geht es

  1. INI oder JSON in das Feld einfügen.
  2. Richtung ist INI nach JSON, INI nach YAML oder JSON nach INI.
  3. Nackte Zahlen und Wahrheitswerte umwandeln ist an. Ein nacktes 3306 wird eine Zahl, true ein Wahrheitswert, null null. Ein Wert in Anführungszeichen bleibt Text, also bleibt "3306" Text. Ausgeschaltet bleibt jeder unzitierte Wert ebenfalls Text.
  4. Umwandeln schreibt das Ergebnis. Beispiel anzeigen lädt title = Notes, eine Leerzeile, [db], host = localhost und port = 3306 und stellt Richtung auf INI nach JSON. Alles löschen leert beide Felder. Ergebnis kopieren übernimmt die Ausgabe.

Was die Umwandlung behält

Leerzeilen und Zeilen, die mit ; oder # beginnen, werden übersprungen. Ein Abschnittsname wird ein Objekt. Schlüssel vor dem ersten Abschnitt bleiben außen. Derselbe Schlüssel im selben Abschnitt: die spätere Zeile gewinnt. JSON nach INI nimmt ein Objekt, dessen Werte Zeichenketten, Zahlen, Wahrheitswerte, null oder Objekte aus diesen Skalaren sind. Ein Array oder ein Objekt in einem Abschnitt wird abgelehnt. Zurück nach INI setzt keine Anführungszeichen um die Werte. INI nach YAML nimmt dasselbe Objekt wie INI nach JSON und schreibt YAML. Keine Fortsetzungszeilen und keine verschachtelten [section.sub]-Objekte.

Wofür

  • Eine Konfiguration in ein Skript lesen.
  • Eine Einstellungsdatei nach YAML bringen.
  • Ein flaches Einstellungsobjekt als INI zurückschreiben.

Fragen

port wurde eine Zahl, ich brauche den Text 3306.

Im INI in Anführungszeichen setzen oder Nackte Zahlen und Wahrheitswerte umwandeln ausschalten.

Ein Array ließ sich nicht nach INI schreiben.

Diese Seite schreibt nur eine Abschnittsebene. Arrays haben hier keine INI-Form.