Hand off a configuration between TOML and JSON
Choose the direction and effective source, then check empty objects, numeric categories and all three downloads.
Choose the direction and actual source
Choose TOML → JSON or JSON → TOML.
Paste text or select one UTF-8 file, each up to 2 MiB. The file takes priority over stale pasted text; its name is limited to 512 UTF-8 bytes. Select the direction explicitly; extensions do not determine it.
- Paste the actual configuration or select the original UTF-8 file.
- Convert and review empty objects, number categories and the report counts.
- Download the converted payload, source-original and conversion-report.json, then validate the configuration in its receiving application.
Read all three deliveries
Use the converted payload for handoff and the original for review. The report records provenance, SHA-256, bytes, BOM, integer/float counts and the resource score. Configuration values are not uploaded.
| File | Purpose |
|---|---|
| converted.json / converted.toml | Complete converted configuration |
| source-original.json / source-original.toml | Exact effective input bytes, including BOM |
| conversion-report.json | Value model, provenance and budget report |
Check the value model before the receiving application
Integers range from −9007199254740991 through 9007199254740991. TOML integers and JSON tokens without a decimal point or exponent are read as BigInt first; unsafe integers reject the whole conversion.
Decimal/exponent tokens use finite IEEE 754 binary64 and retain the float-versus-integer category. Decimal rounding and underflow can occur: 1.234567890123456789 becomes 1.2345678901234567, and 1e-400 becomes float 0.0. Original number spelling and arbitrary decimal precision are not retained.
JSON null, TOML date/time values, non-finite numbers, floating negative zero, raw JSON −0, duplicate keys, malformed grammar or Unicode reject the whole input. Values are never silently deleted, changed to strings or repaired. Date-looking strings remain strings.
{"integer":1,"float":1.0,"arguments":{}}Understand nesting and serialization budgets
Count every root, object, array and scalar value once, excluding key strings and parser bookkeeping. The root object is level 1; each nested object or array adds a level and scalars do not.
The serialization work score adds 32 bytes per logical value node, the UTF-8 size of each JSON-quoted key and string value with DEL escaped as \u007f, and each nonroot object’s complete quoted key path with dots between parts. Array elements carry the path without indices. Deep repeated keys can amplify the score despite a short source. It is not exact CPU, heap or allocation bytes.
The report has fixed fields, bounded counts, two 64-character SHA-256 strings and one source name up to 512 UTF-8 bytes. Its maximum escaping stays below 16 KiB, so the 64 KiB report guard is dominated by the field bounds rather than a reachable capacity edge.
Handle refusals, cancellation and recovery
Keep the original. Correct duplicate keys, unsupported values, encoding or grammar; split configurations above the limits. After cancelling, rerun with the same file and direction. Clear the file selection to use pasted input.
An atomic refusal produces no partial delivery and does not list every unsupported value. Confirm that the receiving application supports the emitted TOML syntax and binary64 number semantics.
References
- Configuration conversion question
The reproduced configuration retains empty arguments objects as table headers. The issue is layout interpretation; browser preference and demand scale are unverified.
- TOML 1.1 specification
Tables, arrays-of-tables, scalar strings and typed numbers define the data model. This converter has an explicit finite-value profile.
Tools in this category
Expand a tool to see its steps, options and supported formats, then open its workspace.
TOML and JSON configuration converterConvert one configuration between TOML and JSON, retaining empty objects, arrays of tables and numeric types, with the original and report.
Convert one configuration between TOML and JSON, retaining empty objects, arrays of tables and numeric types, with the original and report.
Steps
- Choose TOML → JSON or JSON → TOML.
- Paste the actual configuration or select the original UTF-8 file.
- Convert and review empty objects, number categories and the report counts.
- Download the converted payload, source-original and conversion-report.json, then validate the configuration in its receiving application.
Available options
- Conversion direction
- TOML → JSON · JSON → TOML
Capabilities and limits
- Paste text or select one UTF-8 file, each up to 2 MiB. The file takes priority over stale pasted text; its name is limited to 512 UTF-8 bytes. Select the direction explicitly; extensions do not determine it.
- Accept TOML 1.1 tables, arrays of tables, empty objects, nested or mixed arrays, scalar strings, booleans and the numbers below. JSON requires a root object; empty TOML represents an empty object.
- Integers range from −9007199254740991 through 9007199254740991. TOML integers and JSON tokens without a decimal point or exponent are read as BigInt first; unsafe integers reject the whole conversion.
- Decimal/exponent tokens use finite IEEE 754 binary64 and retain the float-versus-integer category. Decimal rounding and underflow can occur: 1.234567890123456789 becomes 1.2345678901234567, and 1e-400 becomes float 0.0. Original number spelling and arbitrary decimal precision are not retained.
- JSON null, TOML date/time values, non-finite numbers, floating negative zero, raw JSON −0, duplicate keys, malformed grammar or Unicode reject the whole input. Values are never silently deleted, changed to strings or repaired. Date-looking strings remain strings.
- At most 100,000 logical value nodes and 64 container levels; the root object is level 1 and scalar leaves add no container level. The serialization work score is limited to 16 MiB, a conservative logical score rather than exact memory or CPU use. Complete conversion is limited to 8 MiB and its report to 64 KiB; no partial files are returned.
- One leading BOM is accepted and recorded; two are rejected. Original bytes and BOM stay intact. Comments, spacing, table layout, integer bases and number spelling normalize; TOML multiline newlines follow its data model.
- Conversion runs in a browser Worker; a 10-second timeout or cancel terminates it. The screen previews at most 4,000 Unicode code points; copy and download retain the complete converted payload. Contents are not uploaded.