JSON Path Syntax

JSON Path is used to locate the data in JSON object. JSON Path is currently used in the following two functionalities of vREST:

  1. Variable Extractor tab In variable extractor tab of a test case, you need to specify the JSON path in "Path" column.
  2. JSON Body Assertions In Assertions tab, you need to specify JSON Path for JSON Body assertions in "Property" column.

Note: We are using jsonPath version 0.8.5. Just remove the prefixes "$." in case of JSON object and "$" in case of top level JSON array while defining JSON path expressions in vREST.

Below are some examples of most common scenarios for JSON path expressions.

For JSON Object Data

Below is the sample JSON Object for reference.

{
  "summary": "Sample Test Case ...",
  "method": "GET",
  "url": "http://localhost:3000/sample-test-case",
  "expectedResults": {
    "statusCode": 200,
    "execution time": 453,
    "headers": [
      {
        "value": "Mon, 27 Jul 2015 06:38:31 GMT",
        "name": "Date"
      },
      {
        "value": "application/json",
        "name": "Content-Type"
      }
    ]
  },
  "createdAt": "2015-02-09T08:22:18.000Z",
  "version.0": "Version 0",
  "version.1": "Version 1"
}
  • Top Level Property
    • JSON Path Expression: method
    • Value: GET
  • Nested Property
    • JSON Path Expression: expectedResults.statusCode
    • Value: 200
  • Nested Property inside an array
    • JSON Path Expression: expectedResults.headers.0.name
    • Value: Date
  • To verify the headers array length
    • JSON Path Expression: expectedResults.headers.length
    • Value: 2
  • When key also having a dot (Use Square Brackets)
    • JSON Path Expression ['version.0']
    • Value: Version 1
  • When key having spaces (Use Square Brackets)
    • JSON Path Expression expectedResults['execution time']
    • Value: 453

For JSON Array Data

Below is the sample JSON Array for reference.

[
  {
    "summary": "Sample Test Case 1",
    "method": "GET",
    "url": "http://localhost:3000/sample-test-case1"
  },
  {
    "summary": "Sample Test Case 2",
    "method": "GET",
    "url": "http://localhost:3000/sample-test-case2"
  },
  {
    "summary": "Sample Test Case 3",
    "method": "GET",
    "url": "http://localhost:3000/sample-test-case3"
  }
]
  • Nested property from Top level Array
    • JSON Path Expression: [0].method
    • Value: GET
  • To verify the length of Top level Array
    • JSON Path Expression: length
    • Value: 3