{{ summaryTitle }} · {{ summaryValue }} · {{ summaryLine }}
Properties conversion source and target controls
One document, up to 200,000 characters and 5,000 lines. Source text is never added to the URL.
{{ sourceActionHint }}
Conversion updates locally as the source or target changes.
Every collision stays visible in the parse ledger.
Quoted values and numeric values with leading zeroes remain text in inference mode.
{{ summaryLine }}
Two spaces is the neutral default.
Leave off to preserve the first-seen retained key order.
{{ params.sort_keys ? 'Alphabetical output' : 'Source order' }}
Optional and intentionally excluded from shared URLs because prefixes can reveal internal naming.
{{ artifactAnnouncement }}
{{ outputText }}
{{ tableAnnouncement }}
LineKeyTypeStatusValueCopy
{{ row.line }}{{ row.key }}{{ row.type }}{{ row.status }}{{ row.value }}
{{ chartAnnouncement }}

A Java properties file is a sequence of logical key-value lines, not a nested document. Names such as server.port and feature.alpha may look hierarchical to a reader, but the properties format treats each decoded name as one key. That distinction matters when the same settings move into JSON, YAML, INI, or environment variables.

Physical lines can also hide one logical value. An odd trailing backslash continues the declaration on the next line, leading whitespace on the continuation is removed, and escape sequences can represent tabs, newlines, separators, spaces, or a four-digit Unicode value. Reading the visible text without decoding those rules can produce the wrong key or value.

Properties conversion decisions that can change meaning
DecisionWhy it mattersSafe review
Duplicate keyA later declaration can replace an earlier one.Choose first, last, or reject before trusting the output.
Scalar inferenceProperties values begin as text, while JSON and YAML can carry numbers and booleans.Keep identifiers with leading zeros as strings.
Flattened target namePunctuation and spaces may collapse to the same INI or environment key.Inspect collision warnings and suffixed names.
Normalized outputComments, spacing, separators, and physical line breaks are not retained.Compare setting meaning, not file appearance.

Conversion can make configuration easier to review or hand to another system, but it cannot know how that system interprets each setting. A numeric port may be appropriate as a JSON number, while a build code such as 00127 usually needs to stay text. The destination schema and application documentation remain the authority.

Configuration commonly contains credentials, private service addresses, and deployment-specific paths. Redact sensitive values before sharing a transformed file, even when the conversion itself stays on the device.

How to Use This Tool:

Review parsing choices first; formatting choices come after the retained key-value map is correct.

  1. Paste the Properties content or load the source file. Fix any invalid Unicode escape before using the generated result.
  2. Choose how Duplicate keys are handled and whether Value handling should infer numbers and booleans or preserve every decoded value as text.
  3. Select the Output format. Set indentation for JSON, an environment prefix for env output, or alphabetical sorting only when the destination requires it.
  4. Compare Converted config with the Parse ledger. Resolve duplicate, skipped-key, and target-collision warnings, then test the text with the actual destination parser.

Interpreting Results:

The property count is the number of distinct decoded keys retained after duplicate handling. It should match the settings you expect to migrate. The parse ledger connects each logical declaration to its decoded key, inferred type, status, and value preview.

  • A Duplicate replaced or Duplicate kept row means two declarations resolved to the same key; confirm that the chosen winner is intentional.
  • A type profile dominated by numbers or booleans deserves a schema check because ordinary properties consumers load values as strings.
  • An environment or INI collision warning means two distinct properties normalized to the same target name. The numeric suffix prevents data loss but may not be a name the application recognizes.

Technical Details:

Properties parsing begins by joining continued physical lines into logical lines. A declaration ends at the first unescaped =, :, space, tab, or form-feed separator. Keys and values are then decoded, including \t, \n, \r, \f, escaped punctuation, and four-hex-digit \u sequences.

Transformation Core

Java properties parsing and rendering stages
StageRuleOutput effect
JoinAn odd number of trailing backslashes continues the logical line.The next physical line is appended after its leading whitespace is removed.
SplitThe first unescaped separator divides key from value; a line without one has an empty value.root is valid and becomes root=.
DecodeRecognized escape sequences are converted before duplicate comparison.Different spellings can resolve to the same decoded key.
ResolveFirst-wins, last-wins, or reject applies to repeated decoded keys.Reject stops conversion; the other policies keep one value and report the duplicate.
TypeInference recognizes booleans and finite decimal numbers; quoted values and leading-zero integers remain strings.true becomes a boolean, 8443 a number, and 00127 text.
RenderThe retained flat map is escaped for JSON, YAML, one-section INI, environment variables, or normalized properties.Dotted property names remain flat JSON and YAML keys rather than becoming nested objects.

With inferred values, server.port=8443, feature.alpha=true, and build.code=00127 become a numeric port, a boolean feature flag, and a string build code. The Unicode escape in message=Hello\u0020team becomes an ordinary space. This path is useful for review, but the destination must still accept those types.

Target rules and limits

  • JSON uses 2 or 4 spaces and preserves the retained flat-key order unless sorting is selected.
  • YAML quotes every key and string value; numeric and boolean values remain scalars.
  • INI places all retained keys under one [properties] section and normalizes unsupported key characters.
  • Environment names are uppercased, punctuation becomes underscores, and an optional prefix is added. Collisions receive numeric suffixes.
  • Input is limited to 200,000 characters, 5,000 physical lines, and 5,000 distinct keys. The review ledger shows at most 200 rows and warnings are capped at 50.

Privacy Notes:

The source is parsed in the current browser tab and does not need to be uploaded to a conversion service. Local processing does not remove secrets from generated text, copied content, or files that you save.

  • Substitute placeholders for passwords, tokens, certificates, and private hostnames before sharing examples.
  • Keep the original file until the destination application has loaded and validated the converted settings.