Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
TOML (Tom's Obvious Minimal Language) is a configuration file format defined by the TOML specification. It uses a simple key = value syntax with section headers for grouping, designed to map unambiguously to a hash table. TOML is human-readable, easy to parse, and strictly typed.
TOML supports strings, integers, floats, booleans, datetime values, arrays, and tables (key-value maps). It does not support null values.
Cargo.toml — Rust package manager manifest files (crates, dependencies, build settings)
pyproject.toml — Python project metadata, build system config, and tool settings (replacing setup.py and setup.cfg)
Hugo config.toml — Static site generator configuration
InfluxDB — Database configuration files
Taplo — TOML toolkit and language server
Many Rust and Go tools — Application configuration where YAML's ambiguity is undesirable
| Feature | JSON | YAML | TOML |
|---|---|---|---|
| Comments | No | Yes | Yes |
| Null value | Yes | Yes | No |
| Datetime type | No (string) | Yes | Yes (native) |
| Mixed-type arrays | Yes | Yes | No |
| Multi-doc streams | No | Yes | No |
| Primary use | Data interchange | DevOps config | App config |
| Ecosystem | Universal | Docker, K8s, CI/CD | Rust, Python, Hugo |
Rust development — Generate or update Cargo.toml dependency lists from JSON package registries
Python packaging — Convert JSON project metadata to pyproject.toml format (PEP 621)
Hugo sites — Transform JSON site configurations into Hugo's native TOML format
Config migration — Move JSON-based application settings to TOML for better readability
Tool compatibility — Some tools require TOML input but your data source produces JSON
The conversion follows these rules:
JSON objects → TOML tables (sections with [key] headers)
JSON nested objects → TOML dotted keys or nested tables ([parent.child])
JSON arrays → TOML arrays (key = [val1, val2])
JSON strings → TOML strings (quoted with "...")
JSON numbers/booleans → TOML integers, floats, booleans
JSON null → Omitted or empty string (TOML has no null type)
Example:
[database]host = "localhost"port = 5432enabled = truetags = ["production", "primary"]TOML is more restrictive than JSON. Be aware of these constraints:
TOML does not support null. JSON null values are either omitted from the output or converted to empty strings, depending on the implementation. If your JSON data uses null semantically, consider replacing nulls with default values before conversion.
TOML arrays must contain elements of the same type. A JSON array like [1, "two", true] (mixed types) cannot be directly represented in valid TOML. The tool handles this by converting all elements to strings in such cases.
TOML keys must follow specific naming rules (bare keys: ASCII letters, digits, dashes, underscores; quoted keys for everything else). JSON keys with special characters are automatically quoted in the TOML output.
This tool runs entirely in your browser. Your data is never uploaded to any server. No data is transmitted, logged, or stored. The tool includes an JSON code editor with syntax highlighting and real-time JSON validation.
Paste your JSON into the code editor, or drag and drop a .json file onto the upload area. Click Sample to load test data. The tool validates the JSON in real time — a green indicator confirms valid input.
Click Convert. The TOML output appears in the Output Data panel. The tool automatically maps JSON objects to TOML tables, arrays to TOML arrays, and handles key quoting and nesting.
Click Copy to Clipboard to copy the result, or Download File (Premium) to save it as a .toml file.
All processing happens locally in your browser using JavaScript. Your files are never uploaded, transferred, or stored on any server. The tool works offline after the page loads.
TOML is primarily used for Cargo.toml (Rust), pyproject.toml (Python), Hugo config files, and InfluxDB configuration. It is designed for human-readable application configuration where unambiguous parsing is important.
Most JSON converts cleanly. Limitations: TOML does not support null values (nulls are omitted or converted to empty strings), and TOML arrays must be homogeneous (same type for all elements). Mixed-type JSON arrays are converted to string arrays.
The tool outputs TOML 1.0 compliant syntax, which is the current stable version supported by all major TOML parsers.
TOML is simpler and less ambiguous to parse. YAML's indentation rules and many features (anchors, aliases, multiple documents, complex type coercion) frequently cause subtle parsing errors. TOML's explicit syntax eliminates most of these issues. TOML is the preferred format in the Rust and Python ecosystems.
This tool converts in one direction: JSON to TOML. For the reverse, use a TOML parser in your preferred programming language, or search for a TOML-to-JSON converter.
The button is disabled when the input JSON is invalid. Fix syntax errors until the validation indicator turns green.
There is no server-side limit. Processing happens in your browser, so practical limits depend on your device's available memory.