JSON

Getting started with JSON

The above modules let you process data in JSON format so that Integromat can further work with the data content, or create new JSON content.

Parse JSON

Data structure

The Data structure describes how the JSON data is organized and enables the mapping of individual JSON items to other modules in your scenario. If you don't provide the Data structure, you may manually execute the module and Integromat will build the structure from the provided JSON:

Fill the JSON String field in the Parse JSON module.

Do not yet connect other following modules. Because Integromat does not know the structure of the JSON data, it will not be possible to map data from the Parse JSON module to other modules in your scenario.

Manually run the scenario. The Parse JSON module will identify the JSON structure from the JSON you have provided.

You can now connect following modules. The items from the Parse JSON module will be now available for mapping.

Collection vs. Array

JSON string field can contain a Collection { ... }:

{
"name" : "Peter",
"ID" : 1
}

In which case the output will be a single bundle containing the items of the Collection:

Or it can contain an Array [ ... ]:

[
{
"name" : "Peter",
"ID" : 1
},
{
"name" : "Mike",
"ID" : 2
}
]

In which case the output will be a series of bundles, each bundle containing one array's item:

Transforming data records to JSON

Let us assume that the data records you wish to transform to JSON format reside in a Google spreadsheet. Here is the procedure on how to transform the data records to JSON format described in ten steps:

[1] Place the Google Sheets > Select rows module in your scenario to fetch the data. Setup the module to retrieve rows from your Google spreadsheet and set the Maximum number of returned rows to a small number, but larger than one for testing purposes (e.g. three). Execute the Google Sheets module (right-click it and choose "Run this module only") and verify the output of the module.

[2] Connect the Array Aggregator module after the Google Sheets module. In the module's setup choose the Google Sheets module in the Source node field. Leave the other fields as they are for the moment.

[3] Connect JSON > Create JSON module after the Array Aggregator module. The module's setup requires a Data structure that describes the JSON format. Click the Add button to open the Data structure setup. The easiest way to create this Data structure is to generate it automatically from a JSON sample. Click the Generator button and paste your JSON sample to the Sample data field:

{
"books": [
{
"id": "ID",
"title": "Title",
"author": "Author"
}
]
}

[4] Click Save. The Specification field in the Data structure setup should now contain the generated structure.

[5] Change the name of your Data structure to something more specific (e.g. "Books") and click Save. If everything goes well, a field corresponding to the root array attribute should appear as a mappable field in the JSON module's setup.

[6] Click the Map button next to the field and map the Array[] item outputted from the Array aggregator module to it:

[7] Click OK to close the JSON module's setup.

[8] Open the setup of the Array Aggregator module. Change the Target structure from Custom to a JSON module's field corresponding to the root array attribute. Map items outputted from the Google Sheets module to appropriate fields:

[9] Click OK to close the Array Aggregator module's setup.

[10] Run the scenario. If everything goes well, the JSON module should output the correct JSON format. Open the setup of the Google Sheets module and increase the Maximum number of returned rows number to be larger than the number of rows in your spreadsheet to process all the data. The resulting JSON can be then used as a body of a HTTP request, returned as a Webhook's response, etc.

Troubleshooting

Cannot map data from the Parse JSON module

Make sure that the JSON content is properly mapped into the Parse JSON module and that the data structure is correctly defined. See the above section, JSON processing for more details.