cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
vnguyen1
Helper I
Helper I

how to combine all texts in json schema into one string using flow.

below is  my parsejason schema:

{
"type":"object",
"properties":{
"id":{"type":"string"},
"keywords":{"type":"array",
"items":{
"type":"object",
"properties":{
"keyword_id":{"type":"string"},
"text":{"type":"string"}
}
}
}
}
}
}

======================

output result:

{
"images": [
{
"id": "1135303410",
"keywords": [
{
"keyword_id": "60494",
"text": "Education",
"type": "Unknown",
"relevance": null
},
{
"keyword_id": "74709",
"text": "Pharmacy",
"type": "Unknown",
"relevance": null
},
{
"keyword_id": "60004",
"text": "People",
"type": "Unknown",
"relevance": null
}}

Goal : combine all the texts for each return keyword into a string as 

combinekeywords: 'Education,PharmacyPeople'. 

Anyone has any sugesstion or idea how to get this done ? Thanks in advance

2 ACCEPTED SOLUTIONS

Accepted Solutions
v-litu-msft
Community Support
Community Support

Hi @vnguyen1,

 

Your output and JSON Schema have some parenthesis errors, you can use the data I corrected below to test:

Output:

{
  "images": [
    {
      "id": "1135303410",
      "keywords": [
        {
          "keyword_id": "60494",
          "text": "Education",
          "type": "Unknown",
          "relevance": null
        },
        {
          "keyword_id": "74709",
          "text": "Pharmacy",
          "type": "Unknown",
          "relevance": null
        },
        {
          "keyword_id": "60004",
          "text": "People",
          "type": "Unknown",
          "relevance": null
        }
      ]
    }
  ]
}

Schema:

{
"type": "object",
"properties": {
"images": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"keywords": {
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword_id": {
"type": "string"
},
"text": {
"type": "string"
},
"type": {
"type": "string"
},
"relevance": {}
},
"required": [
"keyword_id",
"text",
"type",
"relevance"
]
}
}
},
"required": [
"id",
"keywords"
]
}
}
}
}

Step 1: Put the data into the compose, then use the Parse JSON action to get the output of JSON.

Step 2: Initialize a String variable named comebinekeywords.

Annotation 2019-09-05 105019.pngStep 3: Add Append to String variable action to put the "text" + "," into it.

Step 4: Process the last "," character use the expression:

substring(variables('combinekeywords'),0,sub(length(variables('combinekeywords')),1))
Annotation 2019-09-05 105037.png

Please have a try, I hope it can help you.

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

@v-litu-msft 

i found a solution. just set variable to reset combinekeyword to NULL before the loop run. it fixed the issue

View solution in original post

7 REPLIES 7
v-litu-msft
Community Support
Community Support

Hi @vnguyen1,

 

Your output and JSON Schema have some parenthesis errors, you can use the data I corrected below to test:

Output:

{
  "images": [
    {
      "id": "1135303410",
      "keywords": [
        {
          "keyword_id": "60494",
          "text": "Education",
          "type": "Unknown",
          "relevance": null
        },
        {
          "keyword_id": "74709",
          "text": "Pharmacy",
          "type": "Unknown",
          "relevance": null
        },
        {
          "keyword_id": "60004",
          "text": "People",
          "type": "Unknown",
          "relevance": null
        }
      ]
    }
  ]
}

Schema:

{
"type": "object",
"properties": {
"images": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"keywords": {
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword_id": {
"type": "string"
},
"text": {
"type": "string"
},
"type": {
"type": "string"
},
"relevance": {}
},
"required": [
"keyword_id",
"text",
"type",
"relevance"
]
}
}
},
"required": [
"id",
"keywords"
]
}
}
}
}

Step 1: Put the data into the compose, then use the Parse JSON action to get the output of JSON.

Step 2: Initialize a String variable named comebinekeywords.

Annotation 2019-09-05 105019.pngStep 3: Add Append to String variable action to put the "text" + "," into it.

Step 4: Process the last "," character use the expression:

substring(variables('combinekeywords'),0,sub(length(variables('combinekeywords')),1))
Annotation 2019-09-05 105037.png

Please have a try, I hope it can help you.

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

Thanks @v-litu-msft  i could be able to get all the keywords and put them in a string 🙂 Thanks for your help

@v-litu-msft i try to apply this to a loop , the 1st run , they pick up correct value in the combinekey, however, the next value : the combine key still keep the 1st value and did not update the new value. how to make this dynamically ? everytime to run the loop ?

Thanks in advance


@vnguyen1 wrote:

Thanks @v-litu-msft  i could be able to get all the keywords and put them in a string 🙂 Thanks for your help



 

Thanks2019-09-17_22-32-50.png

apply to a loop.PNG

keyword combine set up.PNG

@v-litu-msft look like the initial value keywordcombine having an issue, it is not refresh to pick up the value everytime in the loop. it is stuck at the 1st value only. please advice

 

thanks

Hi @vnguyen1,

 

Could you please post an instance of the data of "downloads"?

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

parse find image ID.PNG

below is the json that i tried to each ID..
example for this run; i have total 8 downloaded asset on that day. i send these ID to search for theri keywords.. after that combine them by your guildline sucessfully. 
However, when i tried to put these in the loop. the 1st asset get the correct combinekeyword. however, the 2nd asset .. the combine keyword are the same as 1st keyword, it did not update the value ... 
this is 1st asset : correct value :" Education,...."
1st asset.PNG
this is 2nd asset : the output keep the same as 1st asset ... "Education,.." . it should be "people,..."
2nd asset.PNG
{
"type": "object",
"properties": {
"result_count": {
"type": "integer"
},
"downloads": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date_downloaded": {
"type": "string"
},
"id": {
"type": "string"
}
},
"required": [
"date_downloaded",
"id"
]
}
}
}
}
 
Please advice
 
thanks in advance

@v-litu-msft 

i found a solution. just set variable to reset combinekeyword to NULL before the loop run. it fixed the issue

View solution in original post

Helpful resources

Announcements
MPA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

V3_PVA CAmpaign Carousel.png

Community Challenge - Giveaways!

Participate in the Power Virtual Agents Community Challenge

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

PowerPlatform 768x460.png

Microsoft Learn

Check out our new Discover Your Career Path blog post series and get all the details.

Users online (2,529)