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

> Convert config files between JSON, YAML, TOML, INI, .env and Java .properties. Auto-detects the format, full TOML 1.0 support, errors with line numbers.

- URL: https://qilingtools.com/en/config-convert
- Category: Developer Tools (https://qilingtools.com/en/dev)
- Tags: [Converters](https://qilingtools.com/en/tags/convert), [Developer](https://qilingtools.com/en/tags/dev), [Data Formats](https://qilingtools.com/en/tags/data), [DevOps](https://qilingtools.com/en/tags/devops)
- Last updated: 2026-10-26
- Price: Free, no sign-up
- Privacy: Runs locally in the browser; files are never uploaded

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.

## How to use

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

## Features

- Convert freely between JSON, YAML, TOML, INI, .env and .properties
- Full TOML 1.0 parser and writer: arrays of tables, inline tables, date-times, hex integers
- Automatic input format detection
- Errors pinpointed by line and column
- .env variable expansion, export prefix and multi-line values
- .properties \uXXXX escapes and line continuations
- INI duplicate keys: last wins, keep first, collect into array or error
- Sorted keys, 2/4-space or tab indent; runs locally

## 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.

## Related tools

- [JSON Formatter](https://qilingtools.com/en/json): Free online JSON formatter: beautify or minify, validate with the exact line and column of any error, browse a collapsible tree, sort keys and escape strings.
- [Base64 Encode/Decode](https://qilingtools.com/en/base64): Free online Base64 encoder and decoder: UTF-8 safe, optional URL-safe variant, convert text to Base64 and back in real time. Processed locally, never uploaded.
- [URL Encode/Decode](https://qilingtools.com/en/url-encode): Free online URL encoder and decoder with encodeURIComponent and encodeURI modes. Escapes Chinese, spaces and special characters. Real-time and local, no upload.
- [JWT Decoder](https://qilingtools.com/en/jwt): Free online JWT decoder: decode the header and payload of a JSON Web Token, show expiry and issued-at times, all locally without uploading the token.
- [Timestamp Converter](https://qilingtools.com/en/timestamp): Free online Unix timestamp converter: convert timestamps and dates, auto-detect seconds or milliseconds, and show local, UTC, ISO 8601 and relative time.
- [Hash / Checksum](https://qilingtools.com/en/hash): Free online hash calculator: SHA-1, SHA-256, SHA-384 and SHA-512 of text or any file through the browser crypto API. Files never leave your device.
- [UUID Generator](https://qilingtools.com/en/uuid): Free online UUID generator: create RFC 4122 UUID v4 in bulk with a cryptographic RNG. Options for uppercase, no hyphens and braces, with one-click copy.
- [Base Converter](https://qilingtools.com/en/base-convert): Free online number base converter: convert between binary, octal, decimal, hexadecimal and any base 2–36. Uses BigInt for huge integers, computed locally.
