Extract JSON Values
Walk every value in a JSON document - filter by key name or value type, output as list/CSV/JSON. Free, offline, client-side, instant, secure.
Pull every value out of a JSON document - filter by key name (exact or
email* / *id / *name* wildcards),
filter by type (string / number / boolean / array / object), include the path,
deduplicate, and emit as list, CSV, or JSON.
How to Use Extract JSON Values
- Paste your JSON. Any well-formed JSON works - object, array, deeply nested. Parser errors surface verbatim in the stats line.
- Type a key filter (optional). Empty matches all keys. Exact:
email. Prefix:user*matches any key starting with "user". Suffix:*Idmatches anything ending in "Id". Contains:*name*matches "firstName", "lastName", "displayname", etc. Matching is case-insensitive. - Pick a type filter. "All scalars" emits strings, numbers, booleans, and nulls. The five specific types narrow further. "Array" / "Object" emit the whole collection as a stringified value - handy for pulling every nested object out for inspection.
- Toggle "Include paths" to see
path = valueinstead of just the value. Pick the path style separately (dot, bracket, JSONPath, or RFC 6901 JSON Pointer). - Toggle "Unique only" to deduplicate. The "values" count vs "unique" count in the stats line tells you how much repetition there was.
- Pick the output format. List (newline-separated), CSV (RFC 4180 quoting), or JSON array. JSON mode with "Include paths" emits an array of typed
{path, key, type, value}objects - useful for further processing. - Copy or download. Ctrl/Cmd + Enter copies. Download saves
values.txt,values.csv, orvalues.json.
Frequently Asked Questions
What is a “value”?
In JSON: anything on the right-hand side of a key, or any element of an array. The seven JSON value kinds are string, number, boolean (true / false), null, object, and array. By default the tool emits scalars (string / number / boolean / null) and skips containers – turn on Array or Object type filter to also emit them as stringified JSON.
How do I extract all emails (or all IDs, all prices)?
Type the key name in the Key filter field. For exact matches: email. For variants like userId, postId, commentId: use the suffix wildcard *Id. For both firstName and lastName: use *name* (case-insensitive). Combine with the type filter – e.g. Key=*price* + Type=Number – to narrow further.
How do paths work?
Each emitted value carries the path that got to it. Dot is the default and most readable: users[0].email. Bracket avoids ambiguity for unusual keys: ["users"][0]["email"]. JSONPath uses the $. root marker – useful when feeding the output into a JSONPath query engine. JSON Pointer (RFC 6901) uses slashes and escapes ~ and / per spec.
What’s “Include paths” for?
It turns the output from value-only into path = value lines. Useful when you need to know where each value came from – e.g. distinguishing the email at users[0].email from the one at contact.email. With JSON output and “Include paths” on, you get an array of {path, key, type, value} objects, which is easy to feed into downstream tools.
What about nested objects and arrays?
The walker is recursive – every value at every nesting depth is visited. Container values (objects, arrays) themselves are emitted only when the type filter explicitly targets them. So the tool can produce “every leaf value in the document” (default), “every value of every key named *Id at any depth” (key filter), “every number anywhere” (type filter), or any combination.
Does it validate JSON?
Yes – native JSON.parse with verbatim error surfacing. E.g. trailing comma in an object produces “JSON parse error: Expected double-quoted property name in JSON at position N”. JSON5 / JSONC (with comments) is out of scope; strip the non-standard bits first.
How do duplicates work?
The “values” count in the stats line is the total number of emitted matches; the “unique” count is how many distinct serialised values exist. The Unique-only checkbox dedupes the output via a Set (order of first appearance preserved). For complex values (arrays, objects) deduplication uses the JSON-stringified form, so structurally identical objects collapse to one.
Is my data uploaded?
No. The page loads three static files (HTML, CSS, JS) and then runs entirely in your browser. Your JSON bytes never leave the device – no fetch, no XHR, no analytics, no cookies. You can disconnect from the internet after the page loads and the tool still works.
Is this tool free?
Yes – free, unlimited, no signup, no watermark. The extracted values are yours to use anywhere. Attribution to is appreciated but not required.