What is TOML?
TOML (Tom’s Obvious Minimal Language) is a configuration file format designed to be easy for humans to read due to obvious semantics. It maps unambiguously to a hash table and is the default for Cargo (Rust), Poetry/PEP 621 (Python), Hugo, and many other tools.
How does TOML compare to YAML and JSON?
JSON is strict and verbose, ideal for APIs but painful to hand-edit. YAML is forgiving and visual but its whitespace rules are a frequent source of bugs. TOML sits between the two: explicit syntax (no whitespace traps), but quote-light and section-based, which makes config files genuinely pleasant to edit.
Can I use this to author a Cargo.toml from JSON?
Yes. Convert your JSON object to TOML, then paste into Cargo.toml. Common Cargo fields like [package], [dependencies], and [[bin]] map cleanly: nested objects become [section] headers and arrays of objects become [[array.of.tables]].
Are nested objects supported?
Yes. Nested objects emit as [parent.child] section headers using dotted keys. Arrays containing only objects emit as [[parent.child]] array-of-tables, which is the idiomatic TOML way to represent a list of structured records.
How are dates and times handled?
JSON has no date type, so dates are typically strings. The converter detects ISO-8601 patterns (e.g. 1979-05-27T07:32:00-08:00) and emits them as TOML datetimes (unquoted). Strings that aren’t valid ISO dates stay as quoted strings.
What about arrays of mixed types?
TOML 1.0 allows arrays with mixed types. The converter emits them inline using [a, b, c] syntax. Arrays of objects use the array-of-tables form, while arrays of scalars or arrays-of-arrays stay inline.
Is my JSON sent to your servers?
No. Conversion runs in JavaScript inside your browser. Open DevTools → Network and confirm — no requests are made when you click Convert.
Will the round-trip JSON → TOML → JSON be lossless?
For most data: yes. The two edge cases to watch are (1) numeric precision — JSON does not distinguish int from float, but TOML does, and (2) date strings — a string that happens to look like an ISO date will round-trip as a TOML datetime, not a string.