Loading tool…
Convert JSON into TOML or TOML into JSON instantly. Built for config files like Shopify’s shopify.app.toml, Rust’s Cargo.toml and Python’s pyproject.toml.
Loading tool…
JSON ⇄ TOML is a free, private online tool that lets you convert JSON to TOML or TOML to JSON in your browser. It runs entirely in your browser, so nothing you enter is uploaded to a server.
[table] sections and arrays of objects become [[array]] blocks (e.g. Shopify [[extensions]]).shopify.app.toml, Cargo.toml or pyproject.toml.Privacy: this tool runs entirely in your browser. Your input is never sent to, received by, or stored on any server — there are no uploads and no tracking of what you enter.
TOML (Tom’s Obvious Minimal Language) is a configuration file format designed to be easy for humans to read and write, mapping cleanly onto a hash table. It powers Cargo.toml (Rust), pyproject.toml (Python) and Shopify app configuration files.
TOML uses [table] headers for nested objects and [[array]] headers for arrays of objects. This converter handles both directions, so deeply nested JSON becomes valid TOML and vice-versa.
Shopify’s CLI stores app settings in shopify.app.toml (with sections like [[extensions]], [access_scopes] and [webhooks]). Paste your JSON to generate the TOML, or paste your TOML to inspect it as JSON while debugging.
[[name]] blocks, and back again.shopify.app.toml and extension TOML files, as well as Cargo and pyproject.TOML — Tom's Obvious, Minimal Language — is a configuration file format designed to be unambiguous and easy for humans to read and write. It maps cleanly onto a hash table (a set of key/value pairs), which makes it trivial for programs to parse. It rose to prominence as the format behind Rust's Cargo.toml and Python's pyproject.toml, and it is increasingly used wherever YAML feels too error-prone and JSON too noisy for config.
TOML's structure comes from two constructs. A table is written with a bracketed header like [database] and groups the key/values beneath it — equivalent to a nested JSON object. An array of tables uses double brackets like [[servers]] and represents a list of objects; repeating the header adds another item. This converter maps JSON objects to tables and JSON arrays-of-objects to arrays of tables, in both directions.
Shopify's CLI configures apps through shopify.app.toml and extension TOML files, with sections such as [access_scopes], [webhooks] and repeated [[extensions]] blocks. Developers frequently work with the same settings as JSON (from API responses, scripts or other tooling) and need to move between the two. Paste JSON to generate valid app TOML, or paste your TOML to inspect and edit it as JSON while debugging — without hand-translating brackets.
Going from JSON to TOML, the tool walks your object: scalar values and inline arrays are written as key = value lines, nested objects become [table] sections, and arrays of objects become [[array]] blocks with the correct dotted paths for deep nesting. Going from TOML to JSON, it parses headers, dotted keys and typed scalars (strings, numbers, booleans, inline arrays) back into a faithful JSON structure that round-trips.
All three describe the same kind of data, but with different trade-offs. JSON is universal and great for machines but verbose and comment-free for config. YAML is concise but its significant whitespace and surprising type coercion cause subtle bugs. TOML aims for the sweet spot: explicit, readable, comment-friendly and hard to get wrong — which is why so many modern tools chose it for human-edited configuration.
This converter supports the constructs you meet in real config files: key/value pairs, nested tables, arrays of tables, inline arrays, strings, numbers and booleans. Very advanced edge cases — like some native date-time literals — are treated as strings. As with every tool here, conversion happens entirely in your browser, so your configuration (which can contain secrets and API scopes) never leaves your device.