Toolvore

JSON Pointer Extractor

Extract JSON values with RFC 6901 pointers, preserve exact digits and download locally.

This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.

Select and download one JSON value using a JSON Pointer while preserving its original number tokens, strings and internal formatting.

How to use it

  1. 1Paste a JSON document or open a UTF-8 JSON file.
  2. 2Enter a pointer such as /items/0/id, or leave it empty for the root.
  3. 3Extract the value, explore child keys, and copy or download the exact JSON.

Example

Input
{"items":[{"id":9007199254740993}]} · /items/0/id
Output
9007199254740993

The numeric token is not rounded.

What happens to your data

Parsing and selection happen locally. Your JSON and pointer are not uploaded, saved or included in the page URL.

Last updated October 2026

Extract one value from a JSON document using a JSON Pointer, then copy or download that value as JSON. A pointer such as /items/0/id selects the id in the first array item. The tool can also explore the immediate children of an object or array, creating escaped pointers for keys that are awkward to type.

The extraction uses the original source text instead of converting the value into JavaScript numbers. A long ID such as 9007199254740993, an exponent such as 1e3 and the original string escapes remain intact. That is useful when isolating an API payload or a configuration subtree where a seemingly harmless parse-and-save could change the data.

How it works

Paste JSON or load a UTF-8 file, enter a pointer and choose Extract value. An empty pointer selects the root. Slash-separated segments select object keys or zero-based array positions. Use ~1 for a slash within a key and ~0 for a tilde. A # fragment can contain percent-encoded characters. This tool resolves a single value; it does not run JSONPath, wildcards, filters or executable expressions.

The document is validated before selection. A missing key, an out-of-range array index, an invalid escape or an attempt to walk through a scalar produces an error rather than a guessed value. Array positions must not have leading zeros. The dash append marker cannot select an existing array item. If the requested object key is repeated, selection fails as ambiguous instead of silently choosing the first or last copy.

The output is the exact source span of the selected value. Surrounding whitespace outside that span is not included. An object or array keeps its internal whitespace, key order and repeated keys; strings remain JSON strings with quotes, not decoded plain text. Offsets are shown as zero-based UTF-16 positions with an exclusive end, making it easier to locate the source in a JavaScript editor.

Up to 50 immediate children can be explored from a result. Repeated object-key entries are visible but cannot be selected. The source remains unchanged while browsing. A preview is limited to 100,000 characters, while copy and download retain the entire selected value. Editing the source or pointer clears the old result to prevent accidental export of a stale selection.

Files are processed locally with a 2 MiB input limit, 50,000 JSON-token limit and maximum depth of 128. The pointer itself is limited to 8,192 characters. These bounds are intentional; a command-line or streaming parser is more appropriate for large exports. No input is uploaded, stored or inserted into the page address.

Worked example: Extract an ID without floating-point rounding

Input
JSON: {"items":[{"id":9007199254740993,"name":"Mira"}]} Pointer: /items/0/id
Result
9007199254740993

The output preserves the original number token. A downstream program may still round it if that program parses it as a floating-point number.

Common use cases

  • Extract a nested response object without rounding large numeric IDs.
  • Check a JSON Pointer used in a configuration or schema reference.
  • Download one array item as a small reproducible JSON test fixture.
  • Navigate keys containing slashes, tildes, spaces or empty names.

Frequently asked questions

Is JSON Pointer the same as JSONPath?+

No. JSON Pointer selects one value with slash-separated segments. JSONPath can describe queries with wildcards and filters. Expressions such as $.items[*] are not accepted here.

How do I select keys containing / or ~?+

Encode a slash in a key as ~1 and a tilde as ~0. For the key a/b, use /a~1b. For a nested ~key, use /a~1b/~0key. The empty pointer selects the whole document; / selects an empty object key.

Will long integers, duplicate keys or formatting change?+

The extracted source span is retained exactly. Duplicate keys within an extracted object remain present, but navigating through a repeated key fails because the target is ambiguous. The tool does not turn number tokens into JavaScript numbers.

Why is /items/01 rejected?+

Array positions use zero-based decimal indices without leading zeros. Use /items/1 for the second element. An object can still have a literal key named 01, because object keys and array indices have different rules.

Can I paste a URL or a quoted JSON string as the pointer?+

Use the pointer text itself, or its # fragment form. Full URLs and JSON-quoted pointer strings are not automatically unwrapped. Characters and spaces in keys are meaningful, so the pointer is not trimmed.

Does the browser execute scripts in my JSON?+

No. The input is parsed as JSON syntax only and the result is rendered as text. HTML, scripts and URL-looking strings inside the JSON are not executed or fetched.