100 % lokal — Ihre Daten verlassen nie Ihren Browser

YAML in .properties — Java liest es zurück

YAML in eine Java-.properties-Datei abflachen. Das Escaping übernimmt das Werkzeug, sodass Properties.load genau das zurückliest, was Sie eingegeben haben.

Sofort Privat Null Cookies

YAML-Eingabe

Properties-Ausgabe

Was dieses Werkzeug tut

Verschachtelung wird zu Punkten, Listen werden zu Indizes:

db:
  host: db.example.com
  port: 5432
hosts:
  - a
  - b
db.host=db.example.com
db.port=5432
hosts[0]=a
hosts[1]=b

Die Form [i] ist die Spring-Konvention und die, die die meisten Leser erwarten.

Das Escapen ist die ganze Arbeit

Eine .properties-Datei ist trügerisch einfach, und drei ihrer Regeln fressen stillschweigend Daten.

Ein Wert, der mit einem Leerzeichen beginnt. Properties.load überspringt den Leerraum nach dem Trennzeichen, key= x liest sich also als x zurück. Das erste Leerzeichen wird escapt — key=\ x — und der Wert überlebt. Abschließende Leerzeichen bleiben, wie sie sind.

Ein Schlüssel, der mit # oder ! beginnt. Diese Zeile ist ein Kommentar. Der ganze Eintrag, Schlüssel und Wert, verschwindet beim Lesen. Diese beiden Zeichen werden escapt, wenn sie einen Schlüssel eröffnen.

=, : und Leerzeichen innerhalb eines Schlüssels werden ebenfalls escapt, und jeder Backslash auch. Ein Zeilenumbruch in einem Wert wird \n, ein Tabulator \t.

Zwei Schlüssel, die auf denselben Namen plätten

"a.b": 1
a:
  b: 2

Beide ergeben a.b. Das Format kann sie nicht unterscheiden, und Properties.load behält den letzten — einer Ihrer beiden Werte wäre also fort, ohne dass etwas es sagt.

Die Umwandlung hält an und nennt den Schlüssel. Es ist der einzige Fall, in dem dieses Werkzeug ablehnt statt umzuwandeln, und der Fall, in dem Umwandeln lügen würde.

Es gibt keine Typen

Alles in einer .properties-Datei ist Text. true kommt als "true" zurück, 42 als "42", ein null als leerer Wert. Ihr Leser entscheidet über die Bedeutung: Boolean.parseBoolean, Integer.parseInt, und eine Entscheidung darüber, was leer heißt.

Ein Wort zur Kodierung

Die Ausgabe ist UTF-8-Text, mit Umlauten und allem. Das liest modernes Java, und das hat Properties.load(Reader) immer gelesen.

Aber Properties.load(InputStream) — der ältere, häufigere Aufruf — liest ISO-8859-1 und macht aus café Zeichensalat. Ist das Ihr Leser, wechseln Sie zur Reader-Überladung oder escapen Sie die Nicht-ASCII-Zeichen als \uXXXX, bevor Sie die Datei ausliefern.

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

Warum wurde mein Schlüssel als Dublette abgelehnt?
Weil zwei verschiedene Pfade auf denselben Namen geplättet wurden. Ein literaler Schlüssel `a.b` und ein verschachteltes `a:` mit `b:` darunter ergeben beide `a.b`, und eine .properties-Datei kann sie nicht unterscheiden: `Properties.load` behält den letzten, der andere Wert verschwindet. Statt für Sie zu wählen, hält die Umwandlung an und nennt die Kollision.
Was passiert mit einem Wert, der mit einem Leerzeichen beginnt?
Das Leerzeichen wird als `\ ` escapt. Java überspringt den Leerraum nach dem Trennzeichen, `key= x` liest sich also als `x` zurück — die führenden Leerzeichen stillschweigend fort. Das erste zu escapen hält den Wert unversehrt; die folgenden und die abschließenden brauchen nichts.
Behält die Datei meine Typen?
Nein, und keine .properties-Datei kann das. Alles ist Text: `true`, `42` und `null` kommen als die Zeichenketten `"true"`, `"42"` und `""` zurück. Ihr Leser entscheidet, was sie bedeuten. Das ist das Format, keine Grenze dieser Umwandlung.

Ähnliche Konverter