INI-JSONkonverter

Vergleich · 10 Min. Lesezeit

INI oder JSON? Unterschiede, Vorteile und wann du welches Format brauchst

INI oder JSON? Der direkte Vergleich: flach mit Sektionen gegen beliebig verschachtelt, Text gegen echte Datentypen, Lesbarkeit für Menschen gegen Maschinen. Mit Vergleichstabelle und klarer Entscheidungshilfe nach Anwendungsfall.

Eike-Christian Ramcke
Eike-Christian Ramcke Veröffentlicht Geprüft

Kurz gesagt

INI ist ein flaches Konfigurationsformat mit Sektionen, speichert alles als Text und erlaubt Kommentare. JSON kann beliebig tief verschachteln, kennt echte Datentypen wie Zahl, Boolean und Array, verbietet aber Kommentare. Faustregel: Nimm INI für einfache, von Menschen gepflegte Einstellungen, nimm JSON für strukturierte Daten und den Austausch zwischen Programmen. Beide Formate lassen sich mit unserem Konverter direkt ineinander umwandeln, lokal im Browser und ohne Upload.

INI und JSON im Überblick

Beide Formate sind reine Textformate und beide werden gerne für Konfiguration eingesetzt. Damit hören die Gemeinsamkeiten aber fast schon auf, denn sie verfolgen unterschiedliche Philosophien. Wer die kennt, trifft die Wahl in Sekunden.

INI ist das ältere und einfachere Format. Es organisiert Einstellungen in Sektionen, die in eckigen Klammern stehen, und darunter folgen Schlüssel-Wert-Paare in der Form key=value. Kommentarzeilen beginnen mit ; oder #. INI wurde für Menschen gemacht, die eine Datei mit dem Editor öffnen und schnell etwas ändern wollen. Es ist allerdings kein streng standardisiertes Format, dazu gleich mehr. Die Grundlagen erklärt der Ratgeber Was ist eine INI-Datei?.

JSON entstand später aus der Objektschreibweise von JavaScript und wurde für den Datenaustausch zwischen Programmen entworfen. Es kennt echte Datentypen, kann beliebig tief verschachteln und ist streng definiert, sodass jeder Parser dieselbe Datei garantiert gleich versteht. Diese Strenge macht JSON maschinenfreundlich, aber etwas unbequemer für die Bearbeitung von Hand. Mehr dazu im Ratgeber Was ist JSON?.

Das gleiche Beispiel in beiden Formaten

Am schnellsten versteht man den Unterschied an derselben Konfiguration, einmal als INI und einmal als JSON. Hier eine Server-Einstellung mit einer Datenbank-Untergruppe:

; config.ini
[server]
host=localhost
port=8080
debug=true

[server.datenbank]
name=shop
ssl=false

Dieselbe Information als JSON, mit echten Datentypen und sichtbarer Hierarchie:

{
  "server": {
    "host": "localhost",
    "port": 8080,
    "debug": true,
    "datenbank": {
      "name": "shop",
      "ssl": false
    }
  }
}

Beide sagen dasselbe aus. Die INI-Variante ist kürzer, erlaubt einen Kommentar und ist für eine schnelle Änderung von Hand angenehmer. Die JSON-Variante macht die Verschachtelung sichtbar, codiert 8080 als echte Zahl und true als echten Wahrheitswert, kann diesen Kommentar aber nicht abbilden.

Die Unterschiede in der Tabelle

Diese Übersicht stellt die wichtigsten Eigenschaften direkt gegenüber:

Eigenschaft INI JSON
Struktur Flach, mit Sektionen Beliebig tief verschachtelt
Datentypen Alles ist Text Text, Zahl, Boolean, null, Objekt, Array
Kommentare Ja, mit ; oder # Nein
Listen / Arrays Umständlich (key[] oder Mehrfach-Schlüssel) Nativ und sauber
Standardisierung Locker, viele Dialekte Streng (RFC 8259)
Von Hand bearbeiten Sehr bequem Eher fehleranfällig
Maschinelle Verarbeitung Möglich, aber uneinheitlich Eindeutig, in jeder Sprache nativ
Typischer Einsatz Lokale Konfiguration, Einstellungen APIs, Datenaustausch, Web

Verschachtelung: flach gegen tief

Der wohl wichtigste konzeptionelle Unterschied ist die Tiefe. INI ist im Kern zweistufig: Es gibt die oberste Ebene und die Sektionen. Eine echte Hierarchie ist nicht vorgesehen. Viele Werkzeuge behelfen sich mit der Punktnotation, indem sie eine Sektion [server.datenbank] als zweite Ebene unter server deuten. Das ist eine Konvention, kein fester Bestandteil des Formats.

JSON dagegen ist von Natur aus baumartig. Ein Wert darf wieder ein Objekt sein, das wieder Objekte enthält, beliebig tief. Für eine Konfiguration mit mehreren Servern, die jeweils mehrere Datenbanken mit eigenen Einstellungen haben, ist JSON deshalb die natürlichere Wahl. Wer eine solche Struktur in INI zwängt, landet schnell bei langen Punkt-Sektionen, die unübersichtlich werden. Wie unser Konverter Punkt-Sektionen in echte JSON-Objekte auflöst, zeigt der Ratgeber Verschachtelte INI-Sektionen in JSON abbilden.

Datentypen: Text gegen typisiert

In einer INI-Datei ist port=8080 für das Format zunächst nur die Zeichenkette 8080. Ob daraus eine Zahl wird, entscheidet erst das Programm, das die Datei einliest. In JSON dagegen ist 8080 ohne Anführungszeichen eindeutig eine Zahl und "8080" ein String. Genauso ist true in JSON ein echter Wahrheitswert, in INI nur Text, der wie das Wort aussieht.

Diese Eindeutigkeit ist ein Vorteil von JSON, sie bringt beim Umwandeln aber eine Entscheidung mit sich: Soll aus dem INI-Wert 8080 die Zahl 8080 oder der String "8080" werden? Unser Konverter wendet dafür eine abschaltbare Heuristik an, die true, false und reine Zahlen erkennt. In Randfällen wie Versionsnummern (1.0) oder Postleitzahlen mit führender Null kann diese Heuristik anders entscheiden als gewünscht. Wer das verhindern will, schaltet sie aus, dann bleibt jeder Wert ein String. Die Details stehen im Ratgeber INI-Datentypen in JSON.

Kommentare und Lesbarkeit

Hier spielt INI seine größte Stärke aus. Eine INI-Datei darf erklärende Kommentare enthalten, etwa ; Dieser Port muss frei sein. Für eine Konfiguration, die ein Mensch pflegt, ist das Gold wert. JSON kennt keine Kommentare, das ist im Standard bewusst so festgelegt. Wer in JSON Erklärungen unterbringen will, muss zu eigenen Feldern, einem Beschreibungs-Schlüssel oder den Varianten JSONC und JSON5 greifen.

Das hat eine wichtige praktische Folge: Beim Weg von INI nach JSON gehen alle Kommentare verloren, weil das Zielformat sie nicht abbilden kann. Der Inhalt bleibt vollständig erhalten, die Erklärungen sind danach aber weg. Wer eine INI-Datei nur zum Prüfen kurz in JSON ansieht, sollte das im Hinterkopf behalten.

Bei der Lesbarkeit kommt es auf die Struktur an. Flache, einfache Einstellungen liest man in INI angenehmer, weil weniger Klammern und Anführungszeichen im Weg stehen. Sobald die Daten verschachtelt sind oder Listen enthalten, ist JSON klarer, weil es die Hierarchie sichtbar macht.

Entscheidungshilfe nach Anwendungsfall

Diese Faustregeln führen in den meisten Fällen schnell zur richtigen Wahl:

Nimm INI, wenn ...

  • die Konfiguration einfach und flach ist (ein paar Sektionen, ein paar Schlüssel),
  • Menschen sie regelmäßig von Hand bearbeiten,
  • erklärende Kommentare wichtig sind,
  • du ohnehin in einem Ökosystem mit INI arbeitest (Windows-Anwendungen, Spiele, git config, php.ini).

Nimm JSON, wenn ...

  • die Daten verschachtelt sind oder Listen enthalten,
  • klare Datentypen (Zahl, Boolean) wichtig sind,
  • die Daten zwischen Programmen oder über eine Web-API ausgetauscht werden,
  • ein Programm sie maschinell und eindeutig verarbeiten soll.

Wenn beide Optionen denkbar wären und du dich zwischen drei Formaten entscheiden musst, lohnt der Blick in den erweiterten Vergleich INI, YAML oder JSON, denn manchmal ist YAML der bequeme Mittelweg.

Von einem Format ins andere

Oft ist die Frage nicht entweder oder, sondern beides nacheinander. Eine bestehende INI-Konfiguration soll in eine Anwendung, die JSON erwartet, oder ein JSON aus einer API soll als handliche INI-Datei abgelegt werden. Genau dafür gibt es unseren INI-zu-JSON- und JSON-zu-INI-Konverter.

Beim Weg INI nach JSON werden Sektionen zu Objekten und key=value-Paare zu Schlüssel-Wert-Paaren, auf Wunsch mit Typ-Heuristik und aufgelösten Punkt-Sektionen. Beim Weg JSON nach INI werden Objekte zu Sektionen und Werte zu key=value-Zeilen. Wichtig dabei: Das JSON muss auf oberster Ebene ein Objekt sein, denn INI kennt keinen reinen Array- oder Einzelwert als Wurzel, und sehr tief verschachteltes JSON passt nicht immer sauber in das flache INI-Format. In solchen Fällen meldet das Tool das klar, statt etwas Falsches zu erzeugen. Alles läuft zu 100 Prozent lokal in deinem Browser, ohne Upload und ohne Anmeldung. Die beiden Wege im Detail beschreiben die Ratgeber INI in JSON umwandeln und JSON in INI umwandeln.

Häufige Fragen

Was ist der wichtigste Unterschied zwischen INI und JSON?

INI ist flach mit Sektionen, speichert alles als Text und erlaubt Kommentare. JSON verschachtelt beliebig tief, kennt echte Datentypen und verbietet Kommentare. INI ist für einfache, von Menschen gepflegte Einstellungen ideal, JSON für strukturierten Datenaustausch.

Ist JSON moderner als INI?

JSON ist jünger und im Web allgegenwärtig, INI ist aber keineswegs veraltet. Für lokale Konfiguration ist INI nach wie vor weit verbreitet und oft die angenehmere Wahl, etwa bei git config oder php.ini.

Gehen beim Umwandeln Daten verloren?

Der Inhalt bleibt erhalten. Verloren gehen beim Weg nach JSON nur die Kommentare, weil JSON sie nicht kennt. Außerdem entscheidet eine abschaltbare Heuristik über die Datentypen.

Kann jedes JSON in INI umgewandelt werden?

Nein. Das JSON muss auf oberster Ebene ein Objekt sein, und sehr tiefe oder gemischte Strukturen passen nicht sauber in das flache INI-Format. Solche Fälle meldet der Konverter klar.

Welches Format ist sicherer für sensible Konfiguration?

Die Sicherheit hängt nicht vom Format ab, sondern davon, wie du die Datei umwandelst. Achte darauf, einen client-side Konverter ohne Upload zu nutzen, damit Passwörter und Schlüssel dein Gerät nicht verlassen. Mehr dazu im Ratgeber zu Datenschutz und DSGVO.

Weiterführende Artikel

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige