Retrieve values from a provided JSON. Use JSON path to indicate the text to be retrieved from the JSON. You can extract multiple pieces of information from a JSON by providing a JSON object in the JSON path field where each key represents a field name that must match the Fields to capture names and each value is the corresponding JSON path expression.
You can find more information on how to use JSON path at this link: https://pypi.org/project/jsonpath-ng/
Review JSON Configuration Instructions below
Application
Text
Inputs (what you have)
Name | Description | Data Type | Required? | Example |
JSON Text | Text in JSON format that you are looking to retrieve values from | Text (Long) | Yes | {“key”:”value”} |
JSON path | The JSON path to the object or value in the text you would like to retrieve. | Text (Long) | Yes | ("Field1":"$.key"} |
Fields to capture name | The name of the field to capture in which to add the JSON value | Text (Short) | Yes | Field1 |
Format outputs as an array? | Format outputs as an array | True/False | No | True |
Note: the value of inputs can either be a set value in the configuration of the Wrk Action within the Wrkflow, or a variable from the Data library section. These variables in the Data library section are the outputs of previous Wrk Actions in the Wrkflow.
Outputs (what you get)
Name | Description | Data Type | Required? | Example |
Fields to capture | A new field to add the value from the input JSON. This field name must match the value in New field name | Text (Long) | Yes | Field1 |
Outcomes
Name | Description |
Success | This status is selected if details are extracted from the JSON. |
No result | This status is selected in the event of the following scenarios:
|
Unsuccessful | This status is selected in the event of the following scenarios:
|
JSON Path Configuration Instructions
Atomic expressions:
Syntax | Meaning |
$ | The root object |
`this` | The “current” object. |
`foo` | More generally, this syntax allows “named operators” to extend JSON path in arbitrary ways |
field | Specified field(s), described below |
[ field ] | Same as field |
[ idx ] | Array access, is described below (this is always unambiguous with field access) |
Jsonpath operators:
Syntax | Meaning |
jsonpath1 . jsonpath2 | All nodes matched by jsonpath2 starting at any node matching jsonpath1 |
jsonpath [ fieldname ] | Same as jsonpath.fieldname |
jsonpath1 .. jsonpath2 | All nodes matched by jsonpath2 that descend from any node matching jsonpath1 |
jsonpath1 where jsonpath2 | Any nodes matching jsonpath1 with a child matching jsonpath2 |
jsonpath1 | jsonpath2 | Any nodes matching the union of jsonpath1 and jsonpath2 |
Field specifiers ( field ):
Syntax | Meaning |
fieldname | the field fieldname (from the “current” object) |
"fieldname" | same as above, for allowing special characters in the fieldname |
'fieldname' | ditto |
* | any field |
field , field | either of the named fields (you can always build an equivalent JSON path using |) |
Array specifiers ( idx ):
Syntax | Meaning |
[n] | array index (may be comma-separated list) |
[start?:end?] | array slicing |
[*] | any array index |
Functions
name | Example |
len |
|
keys |
|
str() |
|
sub | Surround your regex with /regex/
|
split |
*the spaces after the separating commas are required |
sorted |
*Use / to sort ascending and \ to sort descending |
filter |
Supported operators:
Properties can only be compared to static values. Note: If filtering using =~ then the entire array being filtered must be objects or strings. You cannot use this feature for integers, boolean, or nulls. |
arithmetic (-+*/) |
|
String joins / concatenation |
|
JSON Path Configuration Examples
✅ Example 1: Single Field Extraction
Description: Get a user's name from a basic JSON.
JSON Text: { "name": "Alice", "age": 30 }
JSON Path: $.name
Fields to Capture: UserName
Format as Array?: False
Outputs:
UserName: "Alice"
✅ Example 2: Multiple Fields (Flat Structure)
Description: Extract both the user's name and age.
JSON Text: { "name": "Bob", "age": 45 }
JSON Paths:
{ "UserName": "$.name", "UserAge": "$.age" }Fields to Capture: UserName, UserAge
Format as Array?: False
Outputs:
UserName: "Bob"
UserAge: 45
✅ Example 3: Multiple Fields from Nested Structure
Description: Extract user details (email and city) from nested JSON.
JSON Text:
{
"user": {
"contact": {
"email": "charlie@example.com",
"location": {
"city": "New York"
}
}
}
}JSON Paths:
{ "UserEmail": "$.user.contact.email",
"UserCity": "$.user.contact.location.city"
}Fields to Capture: UserEmail, UserCity
Format as Array?: False
Outputs:
UserEmail: "charlie@example.com"
UserCity: "New York"
Version# 1.0
