DARINORCold Lab

Tools / YAML ⇄ TOML ⇄ JSON

YAML / TOML / JSON Converter

Convert between YAML, TOML, and JSON in your browser. Pick a source and target format — the source format is auto-detected on load.

From
To
{
  "name": "darinor.com",
  "version": 1,
  "features": [
    "blog",
    "tools",
    "games"
  ],
  "metadata": {
    "author": "darinor",
    "private": false
  }
}

// About this tool

YAML / TOML / JSON Converter

Paste YAML, TOML, or JSON and convert it to either of the other two formats. On load, the input format is auto-detected by attempting to parse it as each format in turn, but you can override the source and target with the format tabs at any time.

This is useful when a tool expects one config format but your source of truth is in another — CI pipelines are commonly YAML, Rust and Python packaging config is commonly TOML (Cargo.toml, pyproject.toml), and most APIs and MCP configs speak JSON.

TOML requires a top-level table (object) — arrays and bare scalar values at the root can't be represented as a TOML document, so converting those to TOML will show an error even though the same value converts fine to YAML or JSON.

// When to use it

  • Port a GitHub Actions workflow value into JSON

    Paste a YAML snippet to see its JSON shape before wiring it into a script that consumes JSON config.

  • Check a pyproject.toml section as JSON

    Paste TOML and convert to JSON to inspect nested tables and arrays without holding the TOML grammar in your head.

  • Translate an MCP config between formats

    Some MCP clients prefer YAML, others JSON — convert a working config between the two without hand-editing the structure.

// Questions

How is the source format auto-detected?

The input is tried against each parser in turn — JSON first (strictest), then TOML, then YAML (most permissive) — and the first one that parses without error is used. You can always override the detected format with the tabs.

Why can't I convert an array to TOML?

TOML documents are always a table (key-value object) at the root — there's no syntax for a bare top-level array or scalar. Wrap the value in an object first, e.g. { "items": [...] }.

Is my data uploaded anywhere?

No. All parsing and conversion happens client-side in your browser.