Skip to main content
Ink·tab

JSON · YAML · TOML · CSV

Round-trip your config formats. Parse errors point to the exact line and column.

From
To
ResultYAML108 B
name: util-platform
tools:
  - id: json-format
    published: true
  - id: data-convert
    published: true
Everything happens in your browser. Nothing is uploaded.

When to use it

When your team's config files come in different formats. When you need to pull YAML into JSON, or turn a CSV into an array of objects for a script. Parse errors point to the exact line and column.

How it works

Pick the From and To formats at the top. Paste on the left and the right updates live. ↔ Swap feeds the current output back as input. Detect scans your input and guesses the format.

Per-format notes

  • JSON ↔ YAML — Round-trips cleanly. Arrays and nested objects both work without coercion.
  • JSON → TOML — TOML requires the root to be a table (object). If your data is a top-level array, wrap it under a key first.
  • JSON ↔ CSV — CSV is tabular, so it only accepts arrays of flat objects. Nested structures raise an error.

Common pitfalls

  • YAML indentation — Tabs aren't allowed. Two spaces is the norm.
  • Top-level array in TOML — The root must be a table. Wrap it: { "items": [...] }.
  • CSV numeric coercion — Strings like "123" are parsed as numbers. Quote them explicitly if you need strings.

Sensitive payloads, both directions

JSON ↔ YAML ↔ TOML ↔ CSV parsers (yaml · @iarna/toml · papaparse) ship in the client bundle. Conversion happens in the browser without a server round-trip.

Frequently asked questions

Which conversions are supported?
JSON ↔ YAML ↔ TOML ↔ CSV in both directions. 'Auto-detect' infers the input format from its shape.
Is the CSV header row auto-detected?
Yes. The first row is treated as headers and rows become an array of objects. When converting to JSON, header names become keys and each row's cells become values.
Is it safe to convert sensitive data?
Yes. All parsing and conversion happen in your browser — no data is uploaded.