{
"name": "Anvil",
"debug": true,
"database": {
"host": "localhost",
"port": 5432
}
}About INI Formatter & Converter — INI to JSON
INI is a plain-text configuration format built from `[sections]` and `key = value` pairs, with `;` or `#` line comments. It powers `.ini`, `.cfg`, and Java-style `.properties` files across editors, servers, and desktop apps. Because it has no single official spec, hand-edited config files drift quickly — inconsistent spacing, mixed comment styles, and unsorted keys.
This free INI and .properties formatter cleans that up offline. Normalize spacing into canonical `key = value` form, optionally sort sections and keys, and convert INI to JSON and back when you need a structured representation. Values containing `=` are preserved because each line is split only on its first equals sign.
Everything runs entirely in your browser. Nothing you paste is ever uploaded, so it is safe for config that holds hosts, ports, and other internal details.
Features
- Convert INI / .properties to JSON and JSON back to INI
- Normalize spacing to canonical "key = value" form
- Optionally sort sections and keys
- Comments (; and #) ignored; values containing "=" preserved
How to use
- Paste your INI, .properties, or JSON into the input pane.
- Choose "INI → JSON" to convert, "JSON → INI" for the reverse, or "Format" to normalize.
- Copy the result from the output pane — or clear and start again.
Frequently asked questions
What INI syntax does this support?
Standard sections in square brackets, "key = value" pairs, and line comments starting with ";" or "#". Lines are split on the first "=" only, so values that themselves contain "=" are kept intact.
How are comments handled?
Comment lines starting with ";" or "#" are recognized and ignored when converting or formatting. The normalized output contains only sections and key/value pairs.
Why does converting some JSON to INI fail?
INI is a flat, two-level format: top-level scalars and one layer of named sections. Arrays and objects nested more than one level deep have no canonical INI representation, so they are rejected with a clear message instead of producing ambiguous output.
Does my configuration data get sent anywhere?
No. All parsing, conversion, and formatting happens locally in your browser. Your input never leaves your device, which matters for config files that contain hosts, ports, or credentials.
Related tools
Everything runs locally in your browser — your input is never uploaded.