Everything runs on your machine — your file is processed right here in your browser and never uploaded to any server.
Input
JSON
Loading...
Output
TOML
Loading...

About this tool

TOML has become the configuration format of choice for a wave of developer tools: Rust's Cargo.toml, Python's pyproject.toml, Hugo site configs, and Netlify deployment files all use it. If your settings currently exist as JSON, this converter rewrites them as tidy TOML tables and key-value pairs in real time.

It is especially handy for Python developers moving legacy setup metadata into pyproject.toml, and for anyone migrating a static site to Hugo who needs an existing JSON config expressed as config.toml. The section-header style of TOML often makes long configuration files easier to scan than deeply nested JSON.

How to use

  1. Drop your JSON into the left pane, either by pasting it or opening a file with Load File.
  2. The TOML version appears on the right immediately and refreshes as you type, so mistakes surface right away.
  3. Look over the generated section headers to confirm your nested objects mapped to the tables you expect.
  4. Choose Copy to paste the result into your project, or Download to save a ready-to-use .toml file.

Nothing you type or load here is uploaded anywhere. The parsing and TOML generation happen inside your browser's own JavaScript engine, meaning your project configuration stays on your machine the whole time.

Frequently asked questions

Why does my JSON with null values cause an error?

TOML has no null type, so a JSON null cannot be represented directly. Remove those keys or replace the nulls with an empty string, zero, or another sentinel value before converting.

How are nested objects represented in TOML?

They become tables introduced by bracketed section headers, and arrays of objects become arrays of tables using double brackets. This mirrors how Cargo and pyproject files organize grouped settings.

Does TOML preserve my data types?

Yes. TOML natively supports strings, integers, floats, booleans, arrays, and tables, so typed values from JSON keep their types instead of being coerced to text.