JSON to TOML Converter

Paste a JSON object and get the same data as a TOML file, the format of many configuration files. The tool also says what TOML cannot hold, such as a null, and the name where it occurs.

Free Runs in your browser Checked Wednesday, November 11, 2026

The whole JSON text. It must be an object, with braces at the top. Names keep their order and numbers keep their digits. Nothing is sent or stored.

Result

TOML — Copy it, or download it as config.toml.
Check — Green when the JSON converts. Red names the place and the reason.
TOML

This tool runs in your browser. What you enter is not sent to us.

How to use it

  1. Paste a JSON object into JSON object. The whole text must be one object, with braces at the top.
  2. Read Check. Green means the object converted; red names the name where the problem is and the reason.
  3. Copy the TOML output into a file, or download it as config.toml.

How the TOML is laid out

The values of each table are written first, and its sub-tables come after. TOML needs that order, because the values of a table must come before the headers that open its sub-tables. The names keep the order of the JSON.

  • An object inside an object becomes a table with its own header, such as [owner], and its values follow the header.
  • A list of objects becomes an array of tables: one section for each object, with its header in double brackets.
  • A list of numbers or of text stays on one line in square brackets, which TOML allows.
  • A number with a point or an exponent is written as a float, so 1.0 stays 1.0. A number without one is written as an integer.

What TOML cannot hold

  • A null. TOML has no null, so a name with null stops the conversion and is named in the message. Remove the name or give it a value.
  • An integer outside the signed 64-bit range. JSON allows any size, but TOML stops at 9223372036854775807.
  • A top level that is a list or a single value. A TOML document is always a table, so the JSON must be an object.

Names that need quotes

A name made only of letters, digits, underscores and dashes is written as it is. Any other name, such as one with a space or a dot, is written in double quotes, and so is an empty name. Quotes, backslashes and control characters in text are escaped the way TOML requires.

Worked example: a list, a float and an object

The JSON below gives one value of each kind the tool writes. Each row gives the JSON value and the TOML line that it becomes.

JSON value TOML line
"ports": [8000, 8001] ports = [8000, 8001]
"ratio": 1.0 ratio = 1.0
"owner": {"name": "Ada"} [owner], then name = "Ada"

Frequently asked questions

Why do the values of a table come before its sub-tables?

TOML needs each table's own values to come before the headers of its sub-tables. The tool writes the values first, so the file reads correctly and looks like one a person would write by hand.

Why is one number written as 1.0 and another as 1?

A JSON number with a point or an exponent, such as 1.0 or 2e3, is a float in TOML, and a number without one is an integer. The tool keeps that difference, so a float is never written as an integer.

Why does a null stop the conversion?

TOML has no null value, so the tool cannot write one without changing the data. Remove the name that holds the null, or give it a value such as an empty string, and convert again.

Does a date in the JSON become a TOML date?

No. A date in JSON is a string, and a string stays a string, so the TOML keeps the date in quotes. Change the quotes to a date by hand if the TOML file needs a real date value.

Is the JSON I paste sent anywhere?

No. The conversion runs in your browser, and nothing you paste is stored or sent to us. Still, do not paste a password or a token into a page you do not trust.

Sources

Figures and text last checked on Wednesday, November 11, 2026.

We use necessary cookies to run the site. With your consent, Google also uses advertising cookies to show personalised ads. If you reject them, you still see ads, but they are not personalised.