JSON Pointer lookup

Extract a JSON value using a JSON Pointer path.

Your files are processed here, on your device

We do not send your file or text contents to a processing server. No account is needed and there is no daily operation quota. Individual tools have size limits to protect your device’s memory.

A connection is needed to load the site and its resources. Hosting may receive technical visit data. Favorites store only tool identifiers in this browser.

How we handle your data →

How to use this tool

  1. Paste a valid JSON document.
  2. Enter a path beginning with / or leave it empty to select the root.
  3. Look up the value and inspect its type before downloading JSON.

An example you can verify

Retrieve the first user name from a fictitious response.

Example input

{"users":[{"name":"Ana"}]}

SettingsPath: /users/0/name

Expected result

"Ana"

Output retains the JSON type: quotation marks indicate a string. An empty path returns the entire object and /users returns the array.

JSON Pointer lookup: uses and practical guidance

JSON Pointer identifies a value using a specific path inside a JSON document. It is useful when a response contains nested objects and arrays but you only need one member. Every path segment starts with a slash. In /users/0/name, users selects a root-object member, 0 selects the first array item and name selects that item's member. Lookup does not search the entire document: it follows segments in order and stops with an error when a segment cannot be resolved. This distinguishes an incorrect path from an existing value that happens to be null.

An empty path selects the whole document. A single slash selects an object member whose name is the empty string, if that member exists. A literal slash in a member name is encoded as ~1 within a segment; a literal tilde is encoded as ~0. For example, /a~1b selects the member a/b. The sequence ~01 represents the text ~1 rather than a slash. Path whitespace is not trimmed because spaces can be meaningful parts of member names. Names must match exactly: letter case is not ignored and accents or different Unicode normalization forms are not treated as equivalent.

Array indexes start at zero and must be written as nonnegative integers without leading zeros. /items/01 does not select the second item. A hyphen is not interpreted as the last item either; this lookup retrieves only values that already exist. A name such as constructor is accessible only when it is an own member of the JSON object, rather than something inherited from JavaScript's prototype chain. The interface accepts the textual form of JSON Pointer, not JSONPath expressions with wildcards, filters or dollar signs, and not the URI-fragment representation of a pointer.

Output preserves the selected value's JSON type. Strings appear in quotation marks, numbers remain numbers, null remains null, and objects or arrays are shown as indented JSON. This makes downloaded fragments interpretable by another program. Parsing rejects duplicate keys to prevent ambiguous member selection and integers outside the browser's safe range to prevent precision loss. Long numeric identifiers should be supplied as strings by the originating system. Input supports one million characters, one hundred nesting levels and a bounded number of elements to keep the page responsive. For larger documents, first reduce content while retaining the structure needed by the selected path, and check the extracted value against the original source.

Settings and limits

Paste JSON and a path such as /users/0/name. An empty path returns the entire document. In member names, ~1 means / and ~0 means ~. JSONPath and URI fragments are unsupported. Duplicate keys, unsafe integers and nesting beyond 100 levels are rejected.

Frequently asked questions

Do array indexes start at zero?

Yes. /items/0 selects the first item. Leading zeros such as /items/01 are not allowed.

Guides