Array index 2 selects null
Input and settings
JSON: {"a/b":{"~key":[0,false,null,""]}}
Pointer: /a~1b/~0key/2Expected result
null (a present value, not a missing path)
Extract a value by JSON key names or array indices. Preserve large numeric digits, then copy or save the result as JSON.
Example: /users/0/name. Array indices start at 0. Leave the path empty to extract the entire document.
UTF-8 input: 2 MB; output: 5 MB. Up to 100,000 JSON values including objects and arrays, with 32 nesting levels. Path: 4,000 bytes and 32 segments. Input, filenames and results are neither stored nor sent.
The example path /users/0 selects the first object in the users array. /users/0/name extracts "Apple"; /users extracts the whole array as JSON.
Key names distinguish case, spaces and Unicode characters. Escape / in a key as ~1, and ~ as ~0. The example path /a~1b/~0key extracts null.
For keys containing line breaks, enter the path as a JSON string, such as "/line\nbreak". URI fragments starting with #, wildcards, filters and multiple-path extraction are not supported.
Extracted strings remain quoted JSON strings. Numbers retain their digits and exponent notation. Original whitespace, indentation and string-escape spelling are not retained; output uses two-space indentation. The source file is unchanged.
Output is UTF-8 without a BOM. The preview shows the first 20,000 characters; copy and save include the entire result. Extract again after changing the source or path. Reset clears source, path and result.
Extract through keys containing slash and tilde, distinguishing null from an empty string.
Example buttons replace the inputs and settings above and calculate. Restore previous input steps back one example at a time. After trying multiple examples, repeat restore to return to your original input. This history is lost when the page closes.
JSON: {"a/b":{"~key":[0,false,null,""]}}
Pointer: /a~1b/~0key/2null (a present value, not a missing path)
Same JSON / Pointer: /a~1b/~0key/3
"" (two quote characters are output)
JSON Pointer escapes / as ~1 and ~ as ~0. Array indices start at zero, so 2 is the third value and 3 the fourth. Both null and empty strings are present values; strings remain quoted JSON. An empty pointer selects the whole document.
Limits are 2 MB input, 5 MB output, 100,000 values, depth 32 and a 4,000-byte pointer with at most 32 segments. JSONPath, wildcards and negative indices are unsupported. Duplicate keys and invalid JSON are rejected. Preview is capped at 20,000 characters; downloads include everything. Restore returns the selected file, JSON and pointer; extract again for output.
Verification: escaped keys and zero-based indices independently identify null and the empty string. Browser checks compare original file bytes, pointer, restoration and re-extraction after two examples.
Yes. Null, empty strings, false and zero are distinct from missing values. Each can be copied or saved as valid JSON.
Duplicate keys anywhere in the input are rejected to avoid silently losing entries. Large numbers retain their original digits and exponent notation without rounding through JavaScript numbers.
Array indices are nonnegative integers such as 0, 1 and 2. Leading zeros, negative indices and the append marker - are not supported. An object key named "01" remains a valid distinct key.
Share only the tool name and public URL. Your input and results are not included.
Keep any content you need before clearing. This tool does not autosave inputs or results. Reloading or closing the page, clearing inputs or resetting may discard your work.
Favorites and language preferences are stored separately and may be lost when site data is cleared. Tool resets and site-data deletion do not delete files already downloaded to your device.