Power Automate: Save Nested JSON Arrays as Concatenated Strings in SharePoint
- kim
- May 6
- 2 min read
Why this blog?
When working with APIs or external systems (such as Jira, Azure DevOps or custom services), it is common to get nested JSON objects, e.g. an array of objects each containing another array. If you want to store some of this ‘inner’ array data concatenated in a SharePoint list, this can be tricky.
Input Format

Required Format

This step-by-step guide shows you how to:
handle nested JSON data,
extract only the values you need,
into a single character string separated by a semicolon,
and write everything cleanly into a SharePoint list.
Step 1: Trigger manually (Instant Trigger)
Start with a manual trigger. This makes testing your flow much easier.
Note: In real-life scenarios, this trigger might be replaced with an HTTP request, a SharePoint item trigger, or a webhook from another system.

Step 2: Provide Sample JSON via Compose Action
Use a Compose action to define your sample data. You can copy JSON from your API or a mock dataset. You can use the sample data below to get things going.

Example input:
[
{
"id": "10001",
"key": "PROJ-1",
"components": [
{
"self": "https://jira.example.com/rest/api/2/component/101",
"id": "101",
"name": "Frontend",
"description": "Verantwortlich für die UI-Komponenten"
},
{
"self": "https://jira.example.com/rest/api/2/component/102",
"id": "102",
"name": "Auth",
"description": "Authentifizierung und Autorisierung"
}
]
},
{
"id": "10002",
"key": "PROJ-2",
"components": [
{
"self": "https://jira.example.com/rest/api/2/component/103",
"id": "103",
"name": "Performance",
"description": "Performance-Messung und Optimierung"
},
{
"self": "https://jira.example.com/rest/api/2/component/104",
"id": "104",
"name": "Backend",
"description": "Verarbeitung der Businesslogik"
}
]
},
{
"id": "10003",
"key": "PROJ-3",
"components": [
{
"self": "https://jira.example.com/rest/api/2/component/105",
"id": "105",
"name": "Datenbank",
"description": "Alle Datenbankvorgänge und -modelle"
},
{
"self": "https://jira.example.com/rest/api/2/component/106",
"id": "106",
"name": "API",
"description": "Externe und interne Schnittstellen"
}
]
}
]
Step 3: Parse JSON
Use a Parse JSON step so Power Automate can identify and work with individual fields.
Content: outputs('SampleDataSet')
Schema: Let Power Automate generate this from a sample

Step 4: Loop through the JSON Array
Now loop through the array using Apply to each.
Array: @body('Parse_JSON')

Step 4a: Select (Extract Values)
Use a Select action inside the loop to extract only the component names from the nested array.
From: items('Apply_to_each')?['components']
Mapping: item()['name']
This results in a simplified list like:
["Frontend", "Auth"]


Result:

Step 4b: Compose (Join Values)
Now convert the list into a single text string separated by semicolons.
Expression: join(body('Select'), '; ')
The result will look like:
Frontend; Auth

Step 4c: Create Item (Write to SharePoint)
Use a Create item action to write each dataset to a SharePoint list.
Field Mapping:
id: items('Apply_to_each')?['id']
key: items('Apply_to_each')?['key']
components: outputs('Compose')

Final Result
Your SharePoint list now contains one row per dataset. The previously nested array is flattened into a clean text field.
id | key | components |
10001 | PROJ-1 | Frontend; Auth |
10002 | PROJ-2 | Performance; Backend |
10003 | PROJ-3 | Database; API |
Tips for Makers
The Select action is super useful to extract specific values from arrays.
The join() function helps you combine multiple strings into one.
Order matters: make sure Select and Compose are executed before Create item.
Comments