JSON to TOML
Generate TOML from JSON for Rust, Python and config-file workflows: objects become [tables], arrays of objects become [[arrays of tables]], and nesting is preserved exactly.
The conversion has one genuinely unrepresentable case: TOML has no null. Rather than deciding for you silently, this tool makes it a setting — omit null-valued keys, write them as empty strings, or abort the conversion if a null appears. Whichever you pick, the loss report lists every affected key.
ISO timestamp strings can become real TOML datetimes (a type upgrade JSON could not express), and the whole conversion runs on your device.
The Norway problem: in YAML 1.1 the bare word no is the boolean false — so a list of country codes quietly turns Norway into false. YAML 1.2 reads no, yes, on and off as plain strings, but plenty of parsers still speak 1.1, which is why this tool checks every plain scalar against both readings and shows you the difference before it bites.
Why comments can't survive JSON: converters exchange data, and JSON's data model has no comment syntax at all — a comment in YAML or TOML simply has nowhere to go. Instead of dropping them silently, this tool counts every dropped comment and reports it, along with expanded YAML anchors, TOML dates turned into strings, null values TOML can't hold, and integers too big for JavaScript.
FAQ
Does my data leave the browser?
No — conversion is entirely client-side.
What happens to null values?
Your choice, explicitly: drop the key, write an empty string, or refuse to convert. TOML simply has no null, and each strategy changes what a consumer sees — so the tool asks instead of guessing, and reports every key it touched.
Why did my array of objects become [[double brackets]]?
That is TOML’s array-of-tables syntax: each [[name]] block is one element. It is the correct representation for a JSON array of objects, and it round-trips back cleanly.
Can every JSON document become TOML?
Almost — the top level must be an object (TOML documents are tables), and mixed-type arrays have limits in older TOML versions. Anything that cannot be represented is reported, never silently dropped.