YAML to Table ConverterYAML to Table

Start with YAML

Paste YAML on the left or load a sample to preview the table.

Tip: Use Ctrl+V to paste quickly.

What is the YAML to Table Converter?

YAML is a great format to write and a poor format to read in bulk. Two hundred lines of indented keys are fine when you are editing one service, and useless when you need to answer "which of these forty entries has roaming turned on?". This tool takes that answer back: paste a YAML document on the left, and the repeating entries come out on the right as a table you can sort, filter and search.

The whole thing runs in your browser. The YAML is parsed with js-yaml, which implements the YAML 1.2 specification, and nothing leaves the page — no upload, no server round trip. That matters, because the YAML people actually need to inspect tends to be a Kubernetes manifest or a CI config, and those files have a habit of containing things you would rather not paste into someone else's backend.

The rule for what becomes a row is deliberately simple. A top-level sequence of mappings becomes one row per entry. A mapping whose value is a sequence — the common subscribers: then a list underneath — uses that sequence. A single mapping becomes a single row. A bare scalar or a list of plain strings has no columns to build, so you get an error instead of a confusing one-column table.

How to Use the YAML Viewer

  1. Paste Your YAML – Drop the document into the left editor. Comments, anchors and multi-document separators are all fine — the parser handles them. Click "Sample" if you just want to see the shape first.
  2. Watch It Convert – There is no Convert button. The editor re-parses about 300ms after you stop typing, so the table on the right tracks whatever is currently in the buffer.
  3. Filter and Search – Every column gets its own filter box, and the search field above the table matches across all columns at once. Both are plain substring matches, case-insensitive.
  4. Expand Nested Blocks – A nested mapping or sequence shows as a collapsed cell. Click the chevron to open one inline, or use Expand All when you are scanning for a value and do not know which row holds it.
  5. Sort Columns – Click a header to sort. Useful for numeric fields like rsrp where you care about the worst few readings, not the whole list.
  6. Maximize the Table – Wide documents with a dozen keys per entry are painful in a split pane. Maximize gives the table the full window and bumps the page size to 25 rows.

Pro Tip: If the table does not appear, check the first line of the error message for the line number. js-yaml reports positions zero-based internally; the number shown here is already adjusted to match your editor's gutter.

Example

An HSS export of active mobile subscribers. Each item under the subscribers key on the left becomes a row on the right. Note that msisdn and imsi are quoted — that is not decoration, and the FAQ below explains why.

YAML → Table preview Live shape
subscribers.yamlYAML · 3 records
# HSS export - active subscribers on the London core
subscribers:
  - msisdn: "447700900142"
    imsi: "234150999912345"
    plan: Unlimited 5G
    roaming: true
    rsrp: -92
  - msisdn: "447700900458"
    imsi: "234150999967810"
    plan: Pay As You Go
    roaming: false
    rsrp: -104
  - msisdn: "447700900773"
    imsi: "234150999934562"
    plan: Business 200GB
    roaming: true
    rsrp: -78
Rendered table3 rows · 5 columns
msisdnimsiplanroamingrsrp
447700900142234150999912345Unlimited 5Gtrue-92
447700900458234150999967810Pay As You Gofalse-104
447700900773234150999934562Business 200GBtrue-78

Common Use Cases

Kubernetes manifests and Helm values

A values.yaml with thirty container definitions is hard to audit by scrolling. Paste it here and the containers line up as rows, so a missing resources block or an image tag someone left on latest is obvious at a glance. The Kubernetes object documentation is the reference for which keys are supposed to be there; this page just makes it fast to see which ones are.

CI pipeline definitions

GitHub Actions and GitLab CI files are lists of jobs, and lists of jobs are tables. Comparing the runner, timeout and condition across every job is a five-second job in a table and a five-minute job in an editor. The workflow syntax reference is worth keeping open beside it when a key is not doing what you expect.

Test fixtures and seed data

Fixture files get written by hand, which means they drift — one record ends up missing a field, another has a typo in a key name. The table exposes both immediately: a missing field shows as a blank cell, and a typo shows as an extra column with one populated row. Faster than diffing, and it works even when the records were never in the same order.

OpenAPI and config review

Handing a YAML config to someone who does not live in YAML all day rarely goes well. A table does not need explaining. If you also need to check the document is structurally valid rather than just readable, the JSON Schema Store has schemas for most of the common config formats, and most editors will wire them up for you.

Frequently Asked Questions

Why does my file fail with a message about tabs?

Because YAML forbids tab characters in indentation — that is in the spec itself, not a quirk of this parser. It is the single most common YAML error, and it is invisible in most editors, which is what makes it so annoying. This page checks for it before parsing and tells you the exact line. Fix it by setting your editor to insert spaces for Tab; the editor on this page already does.

Why did my value "no" turn into false?

This is the Norway problem. YAML 1.1 treats y, yes, no, on, off and their capitalised variants as booleans, so a country-code list containing NO for Norway silently becomes false. YAML 1.2 narrowed this to true/false only, but plenty of parsers in the wild still follow 1.1. The fix is always the same: quote it. "NO" is a string in every version.

Why does version 1.20 show as 1.2?

Unquoted 1.20 is a float, and floats do not keep trailing zeros. Same story with 08 becoming an error or a different number depending on the parser, and a build number like 1.10 sorting oddly. Version strings, phone numbers, MSISDNs, IMSIs, ICCIDs, ZIP codes — anything that is digits but is not arithmetic — should be quoted. That is why the sample data on this page quotes msisdn and imsi.

Are anchors and aliases supported?

Yes. &defaults and *defaults are resolved during parsing, and merge keys (<<:) are applied, so the table shows the expanded result rather than the reference. That is normally what you want when reviewing: you see the values each entry actually ends up with, including the ones it inherited.

What does the tool do with comments?

Comments are one of YAML's real advantages over JSON — you can explain why a timeout is 45 seconds right next to the 45. They are not data, though, so the parser discards them and they never become rows or columns. Your original text in the editor is untouched, so nothing is lost; the table just shows values.

Is my YAML uploaded anywhere?

No. Parsing happens in your browser, in JavaScript, on the text sitting in the editor. There is no network request involved in the conversion. You can confirm it by opening the Network tab and pasting a document — nothing goes out.

What if my document has multiple YAML documents in it?

Files separated by --- hold several documents. This tool reads the first one, which covers the common case of a single manifest with a leading separator. If you need to inspect a later document, split the file and paste the part you care about.

Related Tools

  • YAML Formatter – Normalise indentation and key order before reading it as a table
  • YAML Validator – Find the exact syntax error when a document will not parse
  • YAML to JSON – Convert YAML to JSON when you need a payload rather than a view
  • XML to Table – The same table view for XML documents
  • JSON to Table – The same table view for JSON data