InterLAB tools · JSON ↔ YAML ↔ CSV · line-level errors · TypeScript

JSON, YAML and CSV converter

Paste your data and the result appears instantly. The format is detected for you, errors show the line, column and a snippet, and the tree helps you find the right path. Everything runs on your device.

Free, no sign-up

JSON · YAML · CSV — everything runs in your browser
From
To

Input

Input up to 200 KB and settings are saved in this browser only.

Input settings

Result · YAML

Converting…

Output settings

For example: users[0].name, users[*].id, $.owner — the result shows only what matches.

How the converter works

  1. Format detection

    Text starting with { or [ is JSON. Rows with the same number of fields separated by commas, semicolons, tabs or | are CSV/TSV. Anything else is read as YAML. You can also pick the format yourself.

  2. Parsing with exact error location

    JSON is parsed by a dedicated RFC 8259 parser: an error shows the line, column, a snippet with a ^ marker and a plain explanation. YAML uses the yaml library (versions 1.2 and 1.1), and CSV follows RFC 4180 with quotes and line breaks inside fields.

  3. Conversion

    Nested objects become user.name and tags[0] columns in CSV and are rebuilt when reading. You can sort keys, change the indent, minify, escape non-ASCII or get TypeScript types from a sample.

  4. Tree and filter

    The tree shows the structure; clicking a key copies a path such as $.users[0].name. A path filter (users[*].id, $.owner) keeps only the matches in the result.

Standards and traps

JSON — RFC 8259; YAML — specifications 1.2.2 and 1.1; CSV — RFC 4180; TSV — tab-separated (quoted only when a value contains a tab or line break).

The most common YAML trap is the version gap. Kubernetes, Ansible and PyYAML often read YAML by 1.1 rules, where “no” is false and “0755” is octal. The tool reads YAML 1.2 by default and warns about each such value with its line number; YAML output quotes these strings.

no

YAML 1.2
"no"
YAML 1.1
false

yes

YAML 1.2
"yes"
YAML 1.1
true

on

YAML 1.2
"on"
YAML 1.1
true

off

YAML 1.2
"off"
YAML 1.1
false

0755

YAML 1.2
755
YAML 1.1
493

1:30

YAML 1.2
"1:30"
YAML 1.1
90

2026-10-14

YAML 1.2
"2026-10-14"
YAML 1.1
"2026-10-14T00:00:00.000Z"
The same “key: …” in YAML 1.2 and 1.1 (parsed by the tool)

JSON

File
.json
MIME
application/json
What it does
RFC 8259; indent 2/4/tab, minify, sort, \uXXXX

YAML

File
.yaml
MIME
application/yaml
What it does
YAML 1.2; documents with ---, quotes for yes/no/on/off

CSV

File
.csv / .tsv
MIME
text/csv
What it does
RFC 4180; column paths, array strategies, formula protection

TypeScript

File
.ts
MIME
text/typescript
What it does
interface or type inferred from the data

Query string

File
.txt
MIME
text/plain
What it does
a[b]=1&t[0]=x, encoded with encodeURIComponent
Output formats

empty

Message
The input is empty.

unexpected-end

Message
Unexpected end of data: a closing bracket, quote or value is missing.

unexpected-char

Message
Unexpected character: a value was expected here (a double-quoted string, number, true, false, null, object or array).

unterminated-string

Message
Unterminated string: no matching quote before the end of the line.

bad-escape

Message
Invalid escape sequence. JSON allows \" \\ \/ \b \f \n \r \t and \uXXXX.

control-char

Message
Control character inside a string: write tabs and line breaks as \t and \n.

bad-number

Message
Invalid number: JSON has no leading zeros, “+”, bare dots, NaN or Infinity.

trailing-comma

Message
Trailing comma before a closing bracket — not allowed in strict JSON.

comment

Message
Comments are not allowed in strict JSON.

single-quote

Message
JSON strings use double quotes.

unquoted-key

Message
Unquoted key: JSON keys are double-quoted strings.

expected-colon

Message
A colon is expected after the key.

expected-comma

Message
A comma or closing bracket is expected — a comma between items may be missing.

expected-key

Message
A double-quoted key is expected.

trailing-data

Message
Extra data after the value — a JSON document holds one top-level value.

too-deep

Message
Nesting is too deep (over 1,000 levels).
JSON error messages (shown with line, column and a snippet)

Limitations

  • Relaxed JSON is not full JSON5: it accepts only comments, trailing commas, single-quoted strings and unquoted keys. Hex numbers, NaN and Infinity are still errors.
  • Integers above 2^53 lose precision (that is how JavaScript numbers work) — the tool warns about each one. Integer-like keys (“10”, “2”) come first in objects — that is JavaScript property order.
  • Duplicate keys: JSON keeps the last value with a warning; in YAML it is an error (the spec requires unique keys).
  • In CSV an empty cell and null look the same; empty arrays create no columns in tags[0] mode — choose “JSON in a cell” to keep them. Keys containing a dot become nesting when read back.
  • TypeScript types are inferred from the sample: values missing from the data are not in the type. YAML comments and source formatting are not preserved.
  • Input up to 10 MB; up to 1 MB of the result is shown (copy or download for all of it), highlighting up to 100 KB.

Privacy

  • Data is parsed in your browser, in a background thread of this page; neither input nor result is sent anywhere, and the page address does not change.
  • Input up to 200 KB and settings are kept in this browser only (localStorage) so the draft survives a reload; larger input lives only in the tab’s memory. “Reset all” deletes the data.
  • Analytics receives only the fact of a copy or download and the format pair (e.g. json → yaml) — never the content.
  • The result reaches us only if you send a request yourself and keep the “Attach the result” box ticked — the form shows exactly what will be sent. Files and images are never sent with a request.
  • The request summary holds only the formats, sizes, key and row counts, the error position and the number of warnings; the data itself, the output, key names and the filter path never go into it.

Related tools

All tools · 40
Tell us about your task — we'll review your request and get back to you

Moving data between systems?

We design the integration and exchange format and build imports and exports with checks. Scope and cost come after a brief.

  • The first short conversation is free — we choose the format
  • NDA — yours or ours
  • Pricing after a brief and an agreed scope

Please do not send passwords, access keys or source code through this form — we will agree a safe way to share access separately.

By clicking the button you agree to the processing of your personal data.