Tools
Tools: one page per job.
Sixteen things people arrive with, in three groups, each with the paste field, the sample that fits and the answer on the page. The same app every time — opened on your case.
Fix
Broken JSON, a printed Python dict, a string that holds a document.
Tools · JSON
Fix invalid JSON
Paste broken JSON: every problem a sentence on its line — unquoted keys, single quotes, trailing commas, Python literals. Fix all in one click, undo.
Tools · Python
Python dict to JSON
Paste a Python dictionary — print() or pprint output with single quotes, True, False and None — and get valid JSON, each change listed by line first.
Tools · nested data
Unstringify JSON
A field that holds JSON as a string — an SNS Message, a webhook body in a log, a text column — opens in place. Unpack names the parser, Pack restores the bytes.
Tools · JSON
JSON formatter and validator
Paste JSON: formatted with a two-space indent, minified, or validated with every problem named by line and fixed in one click. In your browser, not uploaded.
Read
Lines, logs and rows, read as records — with the broken ones named.
Tools · NDJSON
NDJSON viewer
Paste or drop a .ndjson or .jsonl file: one row per line, broken lines counted and filterable, levels as chips, a field=value filter, a panel per record.
Tools · raw logs
Log parser
Paste a service log — logfmt, levels, timestamps. It finds the pattern, counts the matches, and reads the lines as records to filter and compare.
Tools · CSV
CSV to JSON
Paste a CSV and read it as rows: separator detected, a decimal comma asked about, not guessed, JSON in a cell opened in place. Convert to JSON or Markdown.
Tools · JSONPath
JSONPath tester
Paste JSON, type a JSONPath, and see exactly what it selects: the count, the matching nodes as a tree, Copy or Convert over just those. Nothing leaves the tab.
Tools · NDJSON
JSONL validator
Paste a .jsonl or .ndjson file: each line is parsed on its own, the broken lines named with their fix and fixed in one click. For fine-tuning files and logs.
Convert
Between JSON, NDJSON, CSV, TSV, Markdown tables and TypeScript.
Tools · Markdown
JSON to Markdown table
Paste a JSON array, CSV, NDJSON or a log: Convert writes a Markdown pipe table for a README. Paste a pipe table and it opens as rows — the |---| line is proof.
Tools · TypeScript
JSON to TypeScript
Paste an API response: Convert writes TypeScript interfaces — nested objects named, arrays typed from every element, a sometimes-null field a union. Copy it.
Tools · JSON Schema
JSON to JSON Schema
Paste JSON and get a draft 2020-12 JSON Schema: each key typed from its value, arrays from their items, required lists, date-time formats. In your browser.
Tools · Zod
JSON to Zod schema
Paste JSON and get the Zod 3 schema that accepts it: a z.object() per nested object, .nullable() where the sample has null, the inferred type at the end.
Tools · Pydantic
JSON to Pydantic model
Paste JSON and get Pydantic v2 models: one class per nested object, str | None where the sample has null, datetime for RFC 3339 strings, the root model last.
Tools · Go
JSON to Go struct
Paste JSON and get Go structs with json tags: exported names from your keys, one struct per nested object, time.Time for RFC 3339 dates. gofmt-clean.
Tools · NDJSON
JSON to NDJSON
Paste a JSON array, or an object with a list in it: Convert writes NDJSON, one object per line, the count measured. JSON Lines for a stream or a bulk API.
Tools · NDJSON
NDJSON to JSON
Paste JSON Lines: every line read on its own, a broken one named by line and fixed, then Convert writes one JSON array. NDJSON, JSONL and .log files alike.
Tools · NDJSON
NDJSON to CSV
Paste JSON Lines and get CSV: the keys become the header, a nested object becomes a packed cell you can open, a broken line is named and left out — not guessed.
Tools · Markdown
Markdown table to CSV
Paste a pipe table: the |---| row is the proof, the table opens as rows with no question, escaped pipes are kept, and Convert writes the CSV or a JSON array.
Tools · Markdown
CSV to Markdown table
Paste a CSV: the separator and the header row are read from the text, then Convert writes a pipe table for a README or a ticket. Semicolons and quotes included.
Tools · TSV
TSV to JSON
Copy cells out of Excel or Sheets and paste: a spreadsheet copy is TSV. The header row is found, numbers stay numbers, and Convert writes a JSON array.
Errors
The JSON error messages people search for, each answered on its page: what every parser says, where the break is, the fix named on its line.
Errors · JSON
Trailing comma in JSON
A comma after the last value of an object or an array. JavaScript, JSON5 and most config dialects allow it; JSON does not, and every parser stops at the bracket after it.
Errors · JSON
Expecting ‘,’ delimiter
A comma is missing between two values — after a property, or between two items of an array. Python calls it a delimiter; V8 says which two characters it expected; both point one token past the break.
Errors · JSON
Unexpected end of JSON input
The text ends before the document does — cut by a buffer, a log line limit, or a copy that missed the last lines. Every parser reports the end of the text; the fix closes what was left open and says how many.