JSONPath Extractor

Runs in browser

Query and extract data from JSON

How to Use

Enter JSON and a JSONPath query. Click Run or use Live mode.

You will see:

  • Extracted Values
  • Syntax Suggestions
  • Live Evaluation
  • Result Copying
Result

Enter JSON and a JSONPath expression

JSONPath Syntax
$ Root object .property Child property [n] Array index [-n] From end [*] All elements [start:end] Slice .. Recursive descent [?(@.x==y)] Filter

About JSONPath Extractor

JSONPath is a query language for JSON, similar to how XPath is used for XML. It allows you to extract specific data from complex JSON structures using a simple, intuitive syntax. JSONPath is widely used in API testing, data transformation, configuration management, and JSON document processing.

What is JSONPath?

JSONPath provides a way to navigate and query JSON documents using path expressions. It's particularly useful when working with:

  • API Responses: Extract specific fields from complex API responses without parsing the entire JSON structure
  • Configuration Files: Query nested configuration values in JSON-based config files
  • Data Transformation: Select and transform specific parts of JSON data for ETL processes
  • Testing: Assert specific values in JSON responses during API and integration testing
  • Log Analysis: Extract relevant information from structured JSON logs

JSONPath Syntax Guide

$
Root object - represents the entire JSON document
.property
Child property access - navigates to a specific property in an object
[n]
Array index - accesses the nth element (0-indexed) in an array
[-n]
Negative index - accesses elements from the end of an array (e.g., [-1] is the last element)
[*]
Wildcard - matches all elements in an array or all properties in an object
[start:end]
Array slicing - extracts a range of elements (similar to Python list slicing)
..
Recursive descent - searches recursively through all nested levels of the JSON structure
[?(@.property == value)]
Filter expression - filters array elements based on conditions (supports ==, !=, <, >, <=, >=)

Common Use Cases

Extracting All Values

Use $..* to recursively extract all values from a JSON document, useful for searching or flattening nested structures.

Filtering Arrays

Use filter expressions like $..book[?(@.price < 10)] to find all books with prices less than 10, enabling conditional data extraction.

Array Operations

Use slicing [0:5] to get the first 5 elements, or negative indexing [-1] to get the last element.

Benefits of Using JSONPath

  • Efficiency: Extract only the data you need without processing entire JSON documents
  • Readability: Path expressions are more readable than nested loops and conditionals
  • Flexibility: Works with any JSON structure, regardless of complexity or nesting depth
  • Standardization: JSONPath is a widely-adopted standard, making it compatible with many tools and libraries
  • Performance: Optimized path evaluation reduces memory usage and processing time

💡 Pro Tips

  • Start with simple paths and gradually add complexity
  • Use recursive descent (..) sparingly as it can be slow on large documents
  • Filter expressions support multiple conditions - combine them for complex queries
  • Test your JSONPath expressions with sample data before using in production

Further Reading