CoreJSON

Properties to JSON

This Properties to JSON converter restores Java .properties / i18n resource files into nested JSON. It fully supports line continuations, # and ! comments, \uXXXX escapes and the =, : and whitespace key-value separators, restoring hierarchy from dotted paths and optionally inferring numbers and booleans. Parsing runs locally in your browser and nothing is uploaded.

Open in the workbench Runs locally · nothing is uploaded

How to use it

  1. 1

    Paste the Properties text

    Supports app.name=x dotted paths, backslash line continuations and # / ! comment lines.

  2. 2

    Set delimiter and type inference

    The path delimiter defaults to a dot; with inference on, values such as 8080 and true are restored as numbers and booleans.

  3. 3

    Copy the nested JSON

    Hierarchical JSON appears on the right, ready for API config or documentation.

  4. 4

    Use it downstream

    Feed the JSON into a tool on this site or into your application code.

Key features

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 objects

server.host and server.port are grouped under one server object, with a configurable delimiter.

Escaped keys restored correctly

A \. and \\ in a key are resolved at the path and lexical layers so a key containing a dot is not split in error.

Path conflict detection

When a key is both a scalar and a parent path the tool errors clearly instead of producing an uncertain overwrite.

Comments ignored cleanly

# and ! comment lines are skipped without affecting the resulting structure.

Local and private

Parsing happens in your browser and the data is not uploaded.

Common errors & troubleshooting

  • ! Lines starting with # or ! are treated as 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 a version number 0.1.0), turn type inference off.
  • ! Set the delimiter to match how the file was originally written to rebuild the correct nesting.

Frequently asked questions

Do dotted keys always become nested objects?

By default yes: a.b.c becomes {a:{b:{c}}}. If a key genuinely contains a dot, write a\.b in the source file and the tool treats the escape as a literal dot rather than splitting levels.

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; 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 an object at once, which is structurally impossible. Check the key names and, if needed, use a different delimiter or rename.

Is my data uploaded?

No. Parsing happens locally in your browser.

Related tools