{}JSONLint.app

Search for keys and values in your JSON. Results show the full path for easy extraction:

Loading...

Enter a search term to find keys and values in your JSON

About JSON Path Syntax

$
Root object
$.store
Property access
$.store.books[0]
Array index
$.store.books[*]
All array items

For advanced JSONPath queries, use our JSON Path tool.

JSON Search Tool

Our JSON Search tool lets you find keys and values anywhere in your JSON document using simple text search. Unlike JSONPath queries that require knowing the exact path, this tool searches the entire document and shows you where matches are located.

Features

  • Search keys — Find properties by name across nested objects
  • Search values — Find data by content (strings, numbers, booleans)
  • Case sensitivity — Toggle between case-sensitive and insensitive search
  • Exact match — Match whole words only, or find partial matches
  • Path extraction — Copy the full JSONPath to any match

When to Use JSON Search

Use this tool when you need to find something in a JSON document but don't know exactly where it is:

  • Finding all occurrences of a field name like "email" or "id"
  • Locating a specific value in a large API response
  • Discovering where a particular string appears in nested data
  • Exploring unfamiliar JSON structures

Search vs. JSONPath Query

FeatureJSON SearchJSONPath
Find by textYesLimited
Requires path knowledgeNoYes
Extract specific pathsShows pathsExtracts values
Filter by conditionsNoYes
Array slicingNoYes
Best forExplorationExtraction

Understanding Results

Each search result shows:

  • Path — The full JSONPath to the match (e.g., $.users[0].email)
  • Type — The data type (string, number, boolean, array, object, null)
  • Value — A preview of the matched value
  • Match type — Whether the match was in a key, value, or both

Example Use Cases

Find All Email Fields

Search for "email" with "Search keys" enabled. This finds every property named "email" regardless of nesting depth, whether it's in $.user.emailor $.orders[0].customer.contact.email.

Locate a Specific ID

Search for "abc123" with "Search values" enabled and "Exact match" on. This finds the exact location of that ID in your document.

Find Configuration Values

Search for "true" or "enabled" to find all boolean flags and their paths. Useful for understanding feature flags in config files.

Tips for Effective Searching

  • Start broad, then narrow — Begin with "Search keys" and "Search values" both enabled, then toggle off one to reduce results
  • Use exact match for IDs — When searching for specific identifiers, enable "Exact match" to avoid partial matches
  • Copy paths for code — Click "Copy path" to get a JSONPath you can use in your code or in our JSONPath tool
  • Combine with JSONPath — Use Search to find where data lives, then use JSONPath to extract or filter it

Related Tools

Common Mistakes & Pro Tips

  • Decide whether you're matching keys or valuesA term like "price" might appear as a key name, as a string value, or both. Use the key/value scope when available so searching for an id value does not get buried under every property literally named id. Knowing which side you want sharply narrows results.
  • Case sensitivity mattersBy default search may be case-insensitive or case-sensitive depending on the tool; "Active" and "active" are different strings. If you are missing or over-matching results, toggle case sensitivity. This is especially relevant for enum-like values and status flags.
  • Results come back as pathsEach match is reported as a path from the root, such as store.book[2].title, so you know exactly where it lives, not just that it exists. Copy that path into the JSONPath tool to pull the value or its surrounding object.
  • Non-string values get stringified for matchingSearching for 10 may match the number 10, the string "10", or a substring inside a larger value depending on how values are compared. Be explicit about whether you want exact or substring matches, and remember booleans and null are matched as the words true, false, and null.
  • Substring vs whole-value matchesA search for "err" can match "error", "terror", and a key named "errors". If you only want exact values, look for an exact-match or whole-word option; otherwise expect partial hits across both keys and values throughout the document.

Frequently Asked Questions

Does search look at keys, values, or both?

It can match against object key names, primitive values, or both, and the best results come from scoping to the one you actually want. Searching keys finds where a field is defined; searching values finds where specific data appears. A term like "status" often exists as both, so narrowing the scope removes noise.

Is the search case-sensitive?

That depends on the case-sensitivity setting; with it off, "Error" and "error" both match, and with it on they are treated as distinct. If you are getting too many or too few hits, try toggling it. Case sensitivity is most important for status values, enums, and identifiers that rely on exact casing.

What do the results give me?

Each result is the path to the match, expressed from the document root through keys and array indices, for example users[3].email. That tells you precisely where the match is, which you can then open in the tree viewer or feed into the JSONPath tool to extract it. The path format makes it easy to jump straight to the data.

Can I search for numbers or booleans?

Yes. Non-string values are matched by their textual form, so searching 200 can find the number 200 and true/false/null can be matched as those literal words. Note that a numeric search may also hit the string "200" or appear as a substring of a longer number, so use exact matching if you need a precise value.

How do I find every place a value like an email appears?

Search the value scope for the email string, optionally with case sensitivity off, and you will get a path to each occurrence such as users[0].contact.email. Because the same value can appear in multiple branches, review all the returned paths rather than assuming the first one is the only match.

Why is my search matching unexpected results?

Substring matching is the usual cause: searching "id" will match keys like "width" and "video" and values containing those letters. Enable an exact or whole-word match if available, or scope the search to keys or values only. Being specific about scope and match type eliminates most spurious hits.

Is my data uploaded when I search it?

No. The entire search runs in your browser against the JSON you provide, and nothing is transmitted to a server. You can safely search through confidential documents for specific keys or values without exposing them.