# JSON Path Tester > Test JSONPath expressions against JSON data with highlighted results **Category:** Dev **Keywords:** jsonpath, json, path, query, expression, tester, developer, data, filter, extract **URL:** https://complete.tools/json-path-tester ## JSONPath syntax reference JSONPath expressions always start with $ which represents the root of the document. From there you navigate using a combination of operators. Dot notation uses a period to access an object property: $.store.name returns the value of the "name" key inside "store". Bracket notation works the same as dot notation for properties: $['store']['name']. This is useful when property names contain spaces or special characters. Array index access uses a number inside brackets to access a specific array element: $.store.book[0] returns the first book. Indexes are zero-based. The wildcard [*] or .* matches all elements of an array or all properties of an object: $.store.book[*].title returns the title of every book. Recursive descent uses two dots .. followed by a property name to search through all nested levels: $..title finds every "title" property anywhere in the document, no matter how deeply nested. Example expressions you can try with the built-in sample data: - $ returns the entire document - $.currency returns "USD" - $.store.book[1].author returns the second book's author - $.store.book[*].price returns all book prices - $..category finds all category values recursively ## Common use cases API response exploration is one of the most common reasons to use JSONPath. When you receive a complex JSON payload from a third-party API, JSONPath lets you quickly find the fields you care about without writing code to parse it manually. Paste the response here, write a path, and see exactly what you get. Data pipeline debugging is another key use case. If a transformation step produces unexpected output, paste the intermediate JSON and use expressions to verify specific fields are where they should be. This is much faster than adding print statements or setting breakpoints. Configuration file navigation is valuable when working with large files like Kubernetes manifests or GitHub Actions workflows. These contain deeply nested values that are hard to find by scanning visually. JSONPath helps you locate them precisely. Test assertion writing benefits from this tool. When writing automated tests that check values in API responses, prototype your JSONPath selectors here first. Confirm they match exactly what you expect before embedding them in test code. Learning and teaching is made easier with an interactive sandbox. JSONPath is used in Kubernetes, AWS CloudFormation, many JSON processing libraries, and command-line tools like jq (which has a similar syntax). This tool gives you a no-setup environment to experiment. ## How to use 1. Paste your JSON data into the JSON Input field. The tool starts with a sample JSON document showing a bookstore structure so you can try expressions immediately. 2. Enter a JSONPath expression in the Expression field. Every expression starts with the dollar sign $ to represent the root of the document. 3. Click "Test Expression" to evaluate the path against your data. 4. Review the results. The match count tells you how many values were found. The results panel shows each matched value formatted as pretty-printed JSON. 5. Click "Copy Results" to copy the matched values to your clipboard. 6. Adjust your expression and test again until you get exactly the values you need. ## FAQs **Q:** Does this tool send my JSON data anywhere? **A:** No. All processing happens in your browser using JavaScript. Your data never leaves your device and nothing is stored on any server. **Q:** What JSONPath features are supported? **A:** This tool supports the core JSONPath operators including $ for root, .property for dot notation, ['property'] for bracket notation, [*] for wildcards on arrays and objects, [n] for numeric array index access, and ..property for recursive descent that searches at any depth in the document. **Q:** Why does my expression return no matches? **A:** The most common causes are a typo in a property name since JSONPath is case-sensitive, an off-by-one error in an array index since indexes start at 0, or a path that does not match the actual structure of your JSON. Compare your expression carefully against the JSON structure and make sure every property name matches exactly. **Q:** Can I use JSONPath in my own programming language? **A:** Yes. Most languages have JSONPath libraries. In JavaScript you can use the jsonpath or jsonpath-plus packages. In Python the jsonpath-ng library is widely used. Java has the Jayway JsonPath library. Go has several options including gjson. Most libraries follow the same core syntax described here, though some advanced features like filter expressions vary between implementations. **Q:** What is the difference between dot notation and bracket notation? **A:** They are equivalent for standard property names. Bracket notation is required when a property name contains characters like spaces, hyphens, or starts with a number, because those characters are not valid in dot notation. For example $['my-key'] works where $.my-key would be parsed incorrectly. --- *Generated from [complete.tools/json-path-tester](https://complete.tools/json-path-tester)*