JSON Input 0 B
Ready
0 nodes
Mode:
Results 0 matches

Matches will appear here

Enter a search query above and click Find. Results show the path and value of each match.

β€”
Features

Search JSON any way you like

πŸ”€ Multiple search modes

Text (default) searches both keys and values. Keys only restricts matching to object property names. Values only skips keys entirely. Regex enables full JavaScript regex support.

πŸ”‘ Case-insensitive by default

Toggle case-sensitive mode for exact matching. The default is case-insensitive for convenience β€” searching ada matches Ada, ADA, and ada alike.

🧭 Path-aware results

Each match shows its full JSON path (e.g., users[0].name), making it easy to locate in the original document. Click a result to copy the path to your clipboard.

πŸ‘οΈ Context preview

See the matching value with the search term highlighted using <mark> tags. Both the matched substring and its surrounding value are visible at a glance.

⚑ Regex support

Full JavaScript regex syntax. Use ^user to match keys starting with "user", \d+ for numbers, [a-z]+@example\.com for emails, or any other pattern you need.

πŸš€ Performance

Uses an efficient recursive tree-walking algorithm that handles large JSON (1MB+) in under 100ms. A default 1000-result cap keeps the UI responsive on huge documents.

FAQ

Searching JSON β€” common questions

How do I search inside a JSON file?

Paste your JSON into the input box on this page. Type your query in the search field, optionally choose a mode (text, keys, values, or regex) and toggle case-sensitivity. Click Find or press Ctrl+Enter in the query box.

Results appear in the panel below with the full JSON path of each match and a preview of the matching value. The matched substring is wrapped in a <mark> tag for easy visual scanning.

For interactive exploration rather than text search, try the JSON Tree View tool, which has its own built-in filter box.

What's the difference between text and regex search?

Text mode treats your query as a literal substring and matches it against both keys and values (or whichever subset you choose via the Mode dropdown). It's the right choice for simple lookups like "ada" or "production".

Regex mode interprets your query as a JavaScript regular expression. This unlocks pattern matching: \d+ matches any number, ^[a-z]+$ matches lowercase-only strings, [A-Z]{3} matches three consecutive uppercase letters, and so on. Special characters like ., *, +, and ? are interpreted as regex syntax.

If you need to search for a literal string that contains regex special characters (like 1.5 or $id), use Text mode β€” Regex mode would interpret those characters as wildcards or anchors.

Can I search only keys or only values?

Yes. The Mode dropdown has four options. Text (default) searches both keys and values. Keys only restricts matches to object property names β€” useful when you want to find every object that has a createdAt field, regardless of its value.

Values only skips keys and matches only scalar values (strings, numbers, booleans, and the literal text null). This is helpful when you're looking for specific data like an email address or a status code, without being distracted by key matches.

How are paths displayed?

Each match shows its full JSON path in dot notation, similar to JavaScript property access: users[0].name, items[2].price, config.server.port. Object keys appear as-is when they're valid identifiers; otherwise they're wrapped in quotes with bracket notation.

Click any result row to copy its path to your clipboard. You can also use the copy icon in the results header to copy every path at once, which is handy for piping into another tool like JSONPath.

Is there a result limit?

Yes β€” 1000 matches by default. This keeps the UI responsive on very large documents and prevents the browser from rendering tens of thousands of DOM nodes, which would slow down scrolling.

If you hit the limit, a "showing first 1000 matches" notice appears in the status bar. To see more results, narrow your query, switch to regex mode for more precise matching, or split the source JSON into smaller chunks.