CoreJSON

Properties to YAML

This Properties to YAML converter turns Java .properties / i18n resource files directly into well-structured YAML. It fully supports backslash continuations, # and ! comments, \uXXXX escapes and the =, : and whitespace separators, restoring dotted paths into nested structure and optionally inferring numbers and booleans. Conversion runs in a Web Worker inside your browser, so the config never leaves your machine.

Open in the workbench Runs locally · nothing is uploaded

How to use it

  1. 1

    Paste the Properties text

    Supports server.host=localhost dotted paths, backslash continuations and # / ! comment lines.

  2. 2

    Set delimiter and options

    The path delimiter defaults to a dot; you can enable type inference (8080 and true become numbers and booleans) and choose 2 or 4 space YAML indentation.

  3. 3

    Copy the YAML

    Nested YAML appears on the right, ready for Kubernetes, CI or application config files.

  4. 4

    Validate in your pipeline

    Run it through a YAML linter or your config loader to confirm the structure.

Key features

Straight to YAML

No need to go via JSON first: Properties is output directly as YAML 1.2 text readable by standard parsers.

Precise JDK lexer

Parses strictly to the java.util.Properties rules: continuation folding, leading whitespace handling and \t \n \uXXXX escapes are all supported.

Paths restored to nested levels

server.host and server.port are grouped under one server mapping, with dot, colon, slash or hyphen delimiters configurable.

Escaped keys not mis-split

A \. and \\ in a key are resolved at the path and lexical layers precisely, so a dotted key is not split into the wrong levels.

Clear errors on bad input

Empty content, a comment-only file or a path conflict (a together with a.b) all produce a clear explanation rather than a crash.

Local and private

Parsing and serialisation run in a Web Worker in your browser with no server involved, so config and secrets can be pasted safely.

Common errors & troubleshooting

  • ! Lines starting with # or ! are comments; if a key starts with those characters, escape it with a backslash in the source file.
  • ! A single backslash at the end of a physical line means a continuation, and the leading whitespace of the next line is ignored.
  • ! When a value looks numeric but must stay text (such as 0.1.0), turn type inference off so it is not treated as a number.
  • ! YAML indentation may only use spaces — tabs are illegal in YAML, and this tool always outputs spaces.

Frequently asked questions

Do dotted keys always become nested mappings?

By default yes: a.b.c becomes {a:{b:{c}}}, which is then output as nested YAML. If a key genuinely contains a dot, write a\.b in the source file so the escape is treated as a literal dot.

How are \uXXXX escapes and non-ASCII text handled?

They are decoded to the corresponding Unicode characters per the JDK rules and output as UTF-8, with no escaping needed in YAML; backslash continuations and \t / \n escapes are restored too.

What does a path conflict message mean?

It means both a=1 and a.b=2 exist: a would have to be a scalar and a mapping at once, which is structurally impossible. Check the key names and, if needed, use a different delimiter or rename.

Is my data uploaded during conversion?

No. Parsing and serialisation happen in a Web Worker in your browser with no server involved, so config files and secrets can be pasted safely.

Related tools