— — available now

JsonHippo

“Invalid JSON” is useless when the input is five megabytes long. JsonHippo's tokenizer and parser are written by hand, character by character, so when a document fails it says where: Line 123982, col 9: expected ',' or '}' but found string "zip" (in $.people[4321].address) — and one click puts the caret on the bad character. It also recognises the JSON that APIs and logs hand back as an escaped string and unescapes it on paste, filters its tree by key, value, regex or path, and compares two documents by content rather than by line. Launch it right here in the browser, or install it: the desktop app is the same page in its own window, and it makes no network request at all. Inspired by jsonviewer.stack.hu, which its author has used for years.

Launch JsonHippo Download

macOS · Windows · Linux · Web  ·  Electron · Vanilla JS · jQuery  ·  GPL-3.0

JSON viewer with pinpoint errors

Pinpoint errors for JSON that will not parse — line, column, what was expected and the path to it — plus smart paste of escaped JSON, a tree you can filter, and a diff that ignores order. In your browser or on your desktop; nothing is uploaded.

Says where it broke

A hand-written parser gives the line, column, expected and found, and the JSON path — for every one of seventeen error codes. A file missing its last } points at the brace that never closed, not at the end of the file.

Smart paste

Escaped JSON — "{\"id\":7}" — is unescaped on paste, as many times as it was escaped, with an Undo. Ordinary JSON with escaped quotes inside its strings is never touched.

A tree you can filter

Narrow the tree to the keys or values that match — plain text, regex, or a path like $.items[*].name — with each match's ancestors kept so you can see where it sits.

A diff that ignores order

Members match by key and array elements by content, so key order and array order are never differences — a record that moved and changed one field shows as one changed field. Both panes are editable, and Reorder lays one side out in the other's order.

A schema from a sample

The Schema tab infers a JSON Schema from a representative document: properties in the order they appear, required where a key is always present, ready to copy and validate against elsewhere.

Warnings for valid JSON

Duplicate keys, empty keys, and numbers that change when read as a 64-bit float — 12345678901234567890 becomes 12345678901234567000 — are legal JSON and almost always mistakes, so each is flagged with where it is.

Built for big files

A 5 MB document parses in under a tenth of a second; the tree draws only what is open; the filter searches every node, drawn or not.

Every digit kept

Format and minify are written from the parse tree, so 12345678901234567890 keeps its digits and keys keep their order, duplicates included and flagged.

Nothing leaves your machine

No server, no account, no tracking — in the browser or the desktop app, which runs offline and opens links in your own browser. Files are read locally and never uploaded.

JsonHippo on your desktop

On the desktop, JsonHippo comes inside ViewHippo, the herd's desktop app: one download that opens JSON, YAML and Markdown files, each in the viewer made for it. ViewHippo — · free to download and use. No account required.

We think you're on . Download

Every ViewHippo build is published on GitHub Releases, where you will also find the release notes and every previous version. Prefer to build it yourself? The source is right there.

JsonHippo, everywhere else

The herd page is the introduction. These are the places the project actually lives.

PreviousJump Hippo NextYamlHippo