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.
How to use it
- 1
Paste the Properties text
Supports server.host=localhost dotted paths, backslash continuations and # / ! comment lines.
- 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
Copy the YAML
Nested YAML appears on the right, ready for Kubernetes, CI or application config files.
- 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
Properties to JSON
Convert Java .properties / i18n resource files into nested JSON. Line continuations, # and ! comments, \uXXXX escapes and = / : / whitespace separators are all supported. Runs locally.
JSON to YAML
Convert JSON to YAML while keeping the original structure, in a format that is easier to read and comment. Conversion errors point to the source position.
JSON to Properties
Convert JSON to Java .properties key-value config. Nested objects flatten to dotted paths, values are escaped to the java.util.Properties rules, and non-ASCII text is written as UTF-8. Runs locally.
YAML to JSON
Convert YAML to JSON online. Anchors, merge keys and flow syntax are expanded and parsed under the YAML 1.2 core schema, avoiding implicit-type traps such as yes/no and dates. Runs locally.