100 % lokal — Ihre Daten verlassen nie Ihren Browser

Properties in YAML — bereit für Spring Boot

Eine Java-.properties-Datei in YAML verwandeln. Punktierte Schlüssel verschachteln sich, indizierte werden zu Listen — eine application.yml zum Committen.

Sofort Privat Null Cookies
Einrückung

Properties-Eingabe

YAML-Ausgabe

Was dieses Werkzeug tut

Aus einer .properties-Datei wird YAML, wobei die Punkte zu Struktur werden.

# Dienst
app.name=Demo
app.port=8080
app.debug=true
app:
  name: Demo
  port: 8080
  debug: true

= und : trennen beide einen Schlüssel von seinem Wert, Kommentarzeilen beginnen mit # oder !, und eine Zeile, die auf einen Rückstrich endet, geht in der nächsten weiter. Die Escapes einer .properties-Datei — \:, \=, \n, \uXXXX — werden aufgelöst, caf\u00e9 kommt also als café an.

Indizierte Schlüssel werden Listen

app.hosts[0]=alpha
app.hosts[1]=beta
app:
  hosts:
    - alpha
    - beta

So schreibt Spring eine Liste in eine Datei, die keine Listen kennt, und so schreibt sie auch der YAML-nach-Properties-Umwandler dieser Seite. Beim Lesen bekamen Sie jedoch zwei wörtliche Schlüssel namens hosts[0] und hosts[1]: das Werkzeug erkannte seine eigene Ausgabe nicht, und der Hin- und Rückweg verlor die Sequenz. Indizes werden jetzt zur Sequenz, wenn sie bei 0 beginnen und keine Lücke lassen. Eine Lücke, eine Wiederholung oder ein einfaches hosts daneben lassen die Schlüssel genau so, wie sie waren — einen Wert zu verschieben, um ein Loch zu füllen, hieße eine Reihenfolge zu erfinden.

Ein wiederholter Schlüssel wird abgelehnt

app.port=8080
app.port=3000
Duplicate key "app.port": it already has a different value

Properties.load behält die letzte Zuweisung ohne ein Wort, der erste Wert verschwand also. Die Richtung YAML nach Properties weigerte sich bereits, zwei Schlüssel zu schreiben, die auf denselben Namen zusammenfallen; sie hier still anzunehmen war dasselbe Loch von der anderen Seite. Zwei gleiche Zeilen gehen weiter durch, denn sich zu wiederholen gesteht nichts.

Was aus den Werten wird

  • Zahlen und Wahrheitswerte werden typisiert, wie in den CSV-Werkzeugen: 8080 ist eine Zahl, true ein Wahrheitswert.
  • 007 bleibt eine Zeichenkette. 1e3 auch, und alles andere, dessen Text mehr trägt als sein Wert.
  • Mehrdeutige Skalare werden zitiert. y, on und NO sind für einen YAML-1.2-Leser Zeichenketten und für PyYAML, das YAML 1.1 liest, Wahrheitswerte. Genau diese zu zitieren hält beide Leser einig.
  • Ein leerer Wert ist eine leere Zeichenkette, kein Null: die Datei sagt, der Schlüssel sei da und nichts darin, und das sagt das YAML auch.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Was wird aus `app.hosts[0]`?
Eine Liste, seit diese Seite geschrieben wurde. Diese indizierten Schlüssel sind die Art, wie Spring eine Sequenz in eine flache Datei schreibt, und das YAML-nach-Properties-Werkzeug dieser Seite schreibt sie ebenso — beim Lesen bekamen Sie jedoch wörtliche Schlüssel namens `hosts[0]` und `hosts[1]`: das Werkzeug erkannte seine eigene Ausgabe nicht. Eine Folge von Indizes, die bei 0 beginnt und keine Lücke hat, wird nun zur YAML-Sequenz; alles Unregelmäßigere bleibt wörtlich, denn eine Position zu erraten verschöbe einen Wert.
Warum wird ein wiederholter Schlüssel abgelehnt?
`Properties.load` behält den letzten und sagt nichts: der erste Wert verschwand einfach. Die Gegenrichtung weigerte sich bereits, zwei Schlüssel zu schreiben, die auf denselben Namen zusammenfallen; sie hier still zu lesen war dasselbe Loch von der anderen Seite. Zwei gleiche Zeilen sind das Geständnis von nichts und gehen weiter durch.
Warum kam `007` in Anführungszeichen heraus?
Damit es eine Zeichenkette bleibt. Werte werden typisiert wie bei den CSV-Werkzeugen dieser Seite — `8080` ist eine Zahl, `true` ein Wahrheitswert —, aber `007` ist eine Kennung, deren Nullen zählen, also bleibt sie Text. Anführungszeichen schützen außerdem, was YAML-1.1-Leser falsch läsen: `y`, `on` und `NO` sind in Ihrer Datei Zeichenketten und für PyYAML Wahrheitswerte; zitiert bleiben sie sie selbst.

Ähnliche Konverter