JSON Path in REST data source



You can specify the direct path to an array inside the JSON with the help of JSONPath expressions. Data may be found and extracted out of JSON structures.

JSONPath expressions always refer to a JSON structure.  A JSON structure is usually anonymous and doesn't have a "root member object". Thus the JSONPath assumes the abstract name $ assigned to the outer level object.

JSONPath expressions can use the dot–notation.

Overview of the JSONPath syntax elements

JSONPath

Description

$

the root object/element

@

the current object/element

. or []

child operator

n/a

parent

*

wildcard. All objects/elements regardless their names.

[]

subscript operator. In JSON it is the native array operator.

?()

applies a filter (script) expression.

()

script expression, using the underlying script engine.



JSONPath square brackets operate on the object or array addressed by the previous path fragment. Indices always start by 0.

JSONPath examples

To practice JSONPath expressions with some examples we will start with a simple JSON structure representing a users' data.

Users' data example
[ { "id": 1, "name": "Leanne Graham", "username": "Bret", "email": "Sincere@april.biz", "address": { "street": "Kulas Light", "suite": "Apt. 556", "city": "Gwenborough", "zipcode": "92998-3874", "geo": { "lat": "-37.3159", "lng": "81.1496"} }, "phone": "1-770-736-8031 x56442", "website": "hildegard.org", "company": { "name": "Romaguera-Crona", "catchPhrase": "Multi-layered client-server neural-net", "bs": "harness real-time e-markets" } }, { "id": 2, "name": "Ervin Howell", "username": "Antonette", "email": "Shanna@melissa.tv", "address": { "street": "Victor Plains", "suite": "Suite 879", "city": "Wisokyburgh", "zipcode": "90566-7771", "geo": { "lat": "-43.9509", "lng": "-34.4618" } }, "phone": "010-692-6593 x09125", "website": "anastasia.net", "company": { "name": "Deckow-Crist", "catchPhrase": "Proactive didactic contingency", "bs": "synergize scalable supply-chains" } }



JSONPath

Result

JSONPath

Result

$[*]

all members of JSON structure

$[*].company.name

company names of all users in the data source

$[*].username

all usernames in the data source