JSON Extract
This extract is used to read data from JSON files and Web Services. A JSONFile or REST connection is needed.
The extract definition uses JSONPath language, which is a standard query language for selecting nodes from a JSON document. You can find more information on JSONPath at http://goessner.net/articles/JsonPath/.
Main settings
| Connection | JSONFile or REST connection. Only connections with HTTP modes GET and POST are possible for JSON extracts using REST connections. Note: during a data preview of the extract, the POST request is executed, which may provoke undesired changes on the service endpoint. |
| JsonPath loop expression | Set the JSONPath expression that represents the root (designated with $) or anchor element to iterate, or loop, over in the JSON source file. A drop-down list offers reasonable JSONPath expressions, detected in the JSON source file, from which to select the root element. JSON extract can loop through more than one level in a JSON file. The first expression will be the root element, followed by any inner levels. Each level can be given a name, which can be referenced in the Export data fields table. See example below. Expressions can also be entered manually. |
| Export data fields
JsonPth expression |
Set the JSONPath expressions to reference the individual columns from the JSON source file, relative to the loop expression. A drop-down list offers reasonable JSONPath expressions relative to the configured JSONPath loop expression. For each column, a name and a default value can be defined. All blank (one or more white spaces) or null values will be mapped to this default value. Absolute JSONPath expressions (not relative to the JSONPath loop expression) can also be referenced in export data fields. Reference level refers to the name given to each level in the JsonPath loop expression table. If only one level is looped, then this field may be left blank. |
JSONPath expressions will be limited to the two first array elements. JSONPath indexes start at 0, so the first two indexes offered in suggestions are 0 and 1. Further array elements, if necessary, should be entered manually.
For example, elements $feed.link[0].href and $feed.link[1].href are displayed, but $feed.link[2].href has to be entered manually.
Note: the legacy UI will not be updated to use the new configuration. If more than one looping level is defined in the new UI, the old UI will only be able to read the first one.
Advanced settings
Use Caching
If caching is activated, the complete output of the extract is temporarily stored during the first call of the extract, using an internal H2 database. Subsequent calls of the extract read directly from the cache without connecting to the underlying source system of the extract. If the extract or the underlying connection contains variables, a separate cache is build for different values of these variables.
See Caching in Extracts and Transforms for more information.
Example of multi-level looping in JSON Extract
We have a JSON file with several levels of data:
To loop through all users (root level), and then for each user, loop through all groups. The configuration in Jedox would look like this:
In the first table, JsonPath loop expression, each level to be looped is set, starting at the root '$'. Each subsequent row in that table starts from the previous level (in this case, "groups" is actually $.Users.groups). Each level should be given a name, which will appear as "Reference level" in the Export data fields table.
The extract resulting from the above example would look like this:
Updated April 29, 2026


