How-to guides, each with a worked example
Guides
Four tools that share one engine. Start from what you have in front of you, or from the tool you have open. Every guide opens with an example: the text to paste, the presses to make, and the result you should see.
What’s in front of you?
straight to the guideJSON that won’t parseRepair broken JSON →
One value in a big fileFind and query JSON →
Two versions of the same fileHow to compare JSON files and see what changed →
A file to check against a schemaWhy a JSON Schema check says “not fully checked” →
A YAML, XML or CSV fileConvert, pair by pair →
An API response I need types forTypeScript interfaces from a JSON API response →
A token from a loginDecode a token →
A spreadsheet export for a databaseA spreadsheet export into SQL INSERTs →
Which tool do you have open?
or browse by toolEditor
7 jobs · 45 guidesThe workspace at the front of the site: paste a document, read it as code, a tree, a table or a graph, search it, repair it and edit it.
Convert
4 jobs · 13 guidesTurn YAML, XML, CSV and TSV into JSON and back, and JSON on into a Markdown table or SQL — any format the page reads into any other it writes.
Generate
3 jobs · 8 guidesTypes, models and schemas from a sample document — ten languages, and structured-output schemas for three AI providers — from JSON, YAML, XML or CSV.
The JWT decoder
3 jobs · 5 guidesRead a token’s header and claims, see whether its times still hold, check its signature with a secret or a public key, and take the payload on to the editor.
Your first five minutes
one broken document, three stepsPaste it and press Repair
// orders export, pasted from the admin console
{
id: 'ORD-311',
…
paid: true,
}Keys get their quotes, single quotes turn double, the comment and the stray commas go.
Read it in the tree
root {…}
id: "ORD-311"
customer: {…}
items: […]
paid: trueNo press needed: the right pane fills in the moment the repair lands.
Find what you came for
Find: sku 1/2 /items/0/sku /items/1/sku
The counter, then each match’s address. The rows light up in the tree as well.
Whichever tool you use
Around the app
3 jobs · 7 guidesThe command palette, the keys, Settings, the theme, the phone layout, what is kept between visits, and why none of it leaves your browser.
Recipes
4 jobs · 7 guidesJobs that cross two tools, each worked through as a chain of examples where one step’s result is the next step’s input.
Start from something broken
Repair an AI answer, then type itRepair an AI answer, then make it a schemaStart from two files or a question
What changed between two files, and pull it outOnly the active users, as CSVCheck what comes next
Check a YAML config against a schemaMove it somewhere else
A spreadsheet export into SQL INSERTsA token’s claims as a tableTools with a page of their own
About these guides
This site is four tools that share one engine. The editor is where a document you are working on lives; Convert turns one format into another; Generate writes types and schemas from a document; and the JWT decoder reads a token. The guides follow the same division, so start from the tool you have open rather than from the name of a feature.
Inside a tool’s section the guides are arranged by the job you came to do, and each one opens with a worked example: the exact text to paste, the presses to make, named as the screen names them, and the result you should get. Those results are produced by running the real engine, so what a guide prints is what you will see. Under each example, a Try it link opens the tool the example is about with its document already in place.
All of it runs in your browser. Nothing you paste is uploaded, so you can follow along with a file of your own, including one holding data you would not share, and a tool you already have open keeps working with the network disconnected.
Jobs that cross two tools, each worked through as a chain of examples where one step’s result is the next step’s input. They start from the job rather than the tool, so each one is filed under what you have in front of you. The tests behind them check every hand-off as well as every result, so a step never starts from a document the step before it could not have produced.
If you have not settled on a tool yet, start with the one thing almost everyone arrives with: a document that will not parse. The three blocks below take one of them — an order copied out of an admin console, with a comment on top and quotes of the wrong kind — and carry it through the editor from broken text to an answer. Each block begins where the one before it left off.
1 · Paste it and press Repair
Input
// orders export, pasted from the admin console
{
id: 'ORD-311',
customer: { name: 'Mina Patel', city: 'Leeds' },
items: [
{ sku: 'TEA-12', qty: 2 },
{ sku: 'CUP-04', qty: 6 },
],
paid: true,
}Do
- Paste the input into the left pane of the editor.
- Press Repair in the editor band.
Result
Removed trailing commas (2)
Quoted bare property names (10)
Converted single-quoted strings (5)
Removed comments
{
"id": "ORD-311",
"customer": { "name": "Mina Patel", "city": "Leeds" },
"items": [
{ "sku": "TEA-12", "qty": 2 },
{ "sku": "CUP-04", "qty": 6 }
],
"paid": true
}The fixes come first, one a line; the status bar strings the same sentences together after Repaired —. Keys that had no quotes now have them, the single quotes are double, and the comment and the two commas that would stop a parser are gone. Nothing else moved.
2 · Read it in the tree beside it
Input
{
"id": "ORD-311",
"customer": { "name": "Mina Patel", "city": "Leeds" },
"items": [
{ "sku": "TEA-12", "qty": 2 },
{ "sku": "CUP-04", "qty": 6 }
],
"paid": true
}Do
- Look across at the right pane, which opens in Tree beside the text.
Result
root {…}
id: "ORD-311"
customer: {…}
name: "Mina Patel"
city: "Leeds"
items: […]
0: {…}
sku: "TEA-12"
qty: 2
1: {…}
sku: "CUP-04"
qty: 6
paid: trueYou did not have to press anything for this one. The editor opens with the text on the left and a tree of the same document on the right, so the moment the repair lands, the tree fills in: one row per value, the nesting shown by the indent, and a small document opened all the way down. A long one opens only as deep as fits.
3 · Find what you came for
Input
{
"id": "ORD-311",
"customer": { "name": "Mina Patel", "city": "Leeds" },
"items": [
{ "sku": "TEA-12", "qty": 2 },
{ "sku": "CUP-04", "qty": 6 }
],
"paid": true
}Do
- Press
⌘Fon a Mac orCtrl+Fon Windows and Linux, with the caret in the left pane. - Type
sku, then pressEnterto step to the next match.
Result
1/2
/items/0/sku
/items/1/skuThe counter says you are on the first of two, and each line under it is a match’s address as a JSON Pointer. Both matches are keys, so this plain search found the field rather than a value; the scope menu narrows it to one or the other. Rows in the tree light up as well as the text.
That is the editor’s loop — get it in, make it valid, look, search — and the Editor section takes each part further.