QiLing Tools

⚙️Config Converter - JSON, YAML, TOML, INI, .env & .properties

Every tool has its favorite config format: Cargo and pyproject use TOML, Kubernetes and GitHub Actions use YAML, Spring Boot accepts both application.properties and application.yml, PHP and MySQL use INI, and Docker and Node projects live on .env files. This converter moves data between all of them. Paste content or open a file, the format is detected automatically, and you pick the target. The TOML parser is hand-written against the TOML 1.0 spec: tables, arrays of tables, inline tables, dotted keys, multi-line basic and literal strings, every escape, integers with underscores and hex/octal/binary prefixes, inf and nan, and all four date-time types — with strict checks for duplicate keys, tables defined twice, out-of-range integers and impossible dates, reported with line and column. INI supports sections, ; and # comments, inline comments, quoted values, key[] arrays and four duplicate-key policies. .env supports the export prefix, single, double and backtick quotes, escapes, multi-line values, trailing comments and ${VAR} / ${VAR:-default} expansion. .properties supports =, : and whitespace separators, \uXXXX escapes, line continuations and ! comments, and can rebuild nested objects from a.b.c and list[0] keys. When converting to a flat format, nested data is flattened into dotted keys or underscore-joined variable names. Everything runs in your browser, so secrets in your config never leave your machine.

Free · No sign-up · Runs in your browserLast updated:

Loading tool...

How to use Config File Converter

  1. 1Paste config text or open a .toml, .yaml, .json, .ini, .env or .properties file — the format is detected automatically
  2. 2Choose the output format and set indent, key sorting and options such as duplicate keys, variable expansion and nesting
  3. 3Copy or download the result; if there’s an error, fix it at the reported line and column

FAQ

Will anything be lost in conversion?
The data itself is kept, but formats differ in what they can express: JSON has no date type, so TOML dates become strings; TOML has no null, so null values are skipped with a note; INI, .env and .properties only hold strings, so nested objects are flattened into keys like a.b.c or A_B_C. Comments are never carried over. With “Detect numbers and true/false” on, values such as 8080 and true in flat formats become numbers and booleans.
How complete is the TOML support?
It implements TOML 1.0: basic and literal strings (including multi-line strings and line-ending backslashes), \u and \U escapes, integers with underscores, 0x/0o/0b prefixes, floats with inf/nan, offset and local date-times, tables, arrays of tables, inline tables and dotted keys. It rejects what the spec forbids — duplicate keys, defining a table twice, extending a [header] table with dotted keys, integers beyond 64 bits and dates like February 30. Integers beyond JavaScript’s safe range are preserved exactly.
How is ${VAR} in .env handled?
With “Expand ${VAR} references” on, ${VAR} and $VAR in double-quoted and unquoted values are replaced with variables defined earlier in the same file, and ${VAR:-default} falls back to the default when the variable is unset or empty. Single-quoted and backtick values stay literal, and \$ produces a literal dollar sign. Your system environment variables are never read.
How do I turn Spring Boot application.properties into application.yml?
Paste the properties, keep “Nest a.b.c keys into objects” on and choose YAML: server.port=8080 becomes a nested server: port: 8080, list[0] and list[1] become a list, and escapes such as \u4E2D are decoded. Going the other way, from YAML to .properties, you can choose whether non-ASCII characters are escaped as \uXXXX.