{ } tools.dcln.me

tools / data

Data tools.

Convert between JSON, YAML, XML, TOML, CSV and TSV. Format, minify, validate, or generate TypeScript types — all running locally in your browser.

Convert between JSON, YAML, XML, TOML, CSV and TSV. Input format is auto-detected from drop or paste.

Input
empty
Output
empty

How it works

  1. 01 Pick a mode. Four operations: Convert, Format / Minify, Validate, TS Types.
  2. 02 Paste or drop a file. The input format is detected from the file extension. You can override it from the dropdown if detection guesses wrong.
  3. 03 Copy or download. Output appears below — copy to clipboard, or download as a properly-named file with the right MIME type.

FAQ

Does my data get uploaded anywhere?
No. All parsing and serialization happens in your browser using small open-source libraries (papaparse, js-yaml, fast-xml-parser, smol-toml). Open the network tab while you convert — you won't see a single byte of your data leave the device.
Which formats are supported?
JSON, YAML, XML, TOML, CSV and TSV — in both directions. XLSX (Excel) is deferred to a future release because the smallest viable in-browser library is 600KB+ and most XLSX-to-CSV needs are well served by Numbers, LibreOffice, or Excel's own Save As.
How accurate are the inferred TypeScript types?
The type generator walks your sample and infers structural types — primitives, arrays of T, nested interfaces, and unions including null. It handles the 95% case (REST API responses, config files) well, but it can't know about your discriminators or optional-only fields that don't appear in the sample. Paste a representative example with all the variants and edge cases for best results.
Why does TOML conversion sometimes fail?
TOML requires a table (object) at the top level — it has no concept of a top-level array. If your source is an array of records, convert via JSON first (your records become an array under a root key) or use CSV / JSON Lines instead.
Does CSV preserve numeric types?
Yes. The parser uses dynamic typing — values that look like numbers, booleans, or null are converted automatically. If you need to preserve everything as a string (e.g. zip codes with leading zeros), quote them in the source CSV and they'll stay as strings.
Does it work offline?
Yes, after the page has loaded once. Each format library is small and lazy-loaded only when you actually use it — so the first conversion you run downloads ~50KB, and subsequent ones in the same format are instant.