JSON Key Extractor Online

Discover the shape of an unfamiliar JSON response without copying every value into a spreadsheet. Extract a sorted list of unique property names, or list the full paths and types of nested fields. Use the result to plan mappings, document a payload or compare expected fields.

Extract keys from a real example

Paste {"user":{"name":"Asha"},"tags":["photo","audio"]} and select Paths and types. The result includes /user, /user/name, /tags, /tags/0 and /tags/1 with their corresponding types. Select Unique property names to get name, tags and user instead. Array positions are locations rather than named properties, so indexes do not appear in the unique-key list.

Use full paths for nested field mapping

A flat list of names is convenient for finding the vocabulary of a response, but two objects can both contain a name property. Full paths keep those locations distinct. JSON Pointer uses a leading slash for each segment and zero-based array indexes. Literal slashes and tildes in keys are escaped, which avoids confusing a single unusual key with several nested objects.

Read the inferred types carefully

Types describe the values present in this sample only. A field shown as number might contain null in another response, and an empty array does not reveal the type of future elements. Container paths are included alongside their children. The extractor does not infer required fields, validate an API contract or generate a JSON Schema from a single example.

Keep the source complete and reasonably sized

Use valid JSON rather than JavaScript object syntax: property names need double quotes and trailing commas are invalid. Inputs are limited to 100,000 characters, 20,000 values and 100 levels. Duplicate keys retain the last value during parsing. Large integer values are rejected unless quoted, even when you only need the names, so parsing cannot silently round an identifier.

Technical references: JSON Pointer reference

JSON Key Extractor FAQs

Unique property names are deduplicated across the document. Paths remain separate when the same name appears under different parents or different array indexes.
An empty root object, empty root array or scalar has no child paths, so the result is an empty list. Empty nested containers still have their own named paths.
It uses JSON Pointer, not JSONPath query expressions. For instance, /tags/0 identifies the first tag; the tool does not produce wildcard queries such as $.tags[*].