web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / is it possible to make...
Power Automate
Answered

is it possible to make a filter on a json object ?

(0) ShareShare
ReportReport
Posted on by 331

Hello all,

 

I need to modify  the value of a specific key in an object before re-injecting it into a rest api call.

I tried several ways but none of them was sucessfull .

 

Yet, I'm trying using the select operation but : 

 

in the from section, would it be possible, instead having body('DemandeInfosVue')?['SearchFields']

 

to write something like : 

body('DemandeInfosVue')?['SearchFields'] WHERE  body('DemandeInfosVue')?['SearchFields']?[Id] = 23

 

 

forstera_0-1625135135718.png

Thanks to all for your help 🙂

 

 

Categories:
I have the same question (0)
  • DamoBird365 Profile Picture
    8,942 Microsoft Employee on at

    Hi @forstera 

     

    You would need to use the filter array first and use the result of that filter in your select.  Alternatively, if your objects run in sequential order and are numbers 1-> 23, you could call object 23 as expression body('DemandeInfosVue')?['SearchFields'][22], note objects start from 0.

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
    Cheers,
    Damien


    P.S. take a look at my new blog here and like & subscribe to my YouTube Channel thanks 😉

  • forstera Profile Picture
    331 on at

    Hello DamoBird465,

     

    Thanks for your answer. Unfortunately, if I'm right (because I'm very new in Power Automate) I can't use an array  because my JSON object is relative complexe : there's an array of x elements (and each element has several properties) inside a property. If I wan to use an array, I should make something to extract every parts of my object, modify the one I want and re-construct the object after that ; I dont know if it's possible ...

     

  • DamoBird365 Profile Picture
    8,942 Microsoft Employee on at

    Hi @forstera 

     

    can you share the json array?

     

    Damien

  • forstera Profile Picture
    331 on at

    Here's the schema of my object :

     

    {
     "type": "object",
     "properties": {
     "Id": {
     "type": "integer"
     },
     "DataClassId": {
     "type": "string"
     },
     "Designation": {
     "type": "string"
     },
     "SearchFields": {
     "type": "array",
     "items": {
     "type": "object",
     "properties": {
     "Id": {
     "type": "integer"
     },
     "FieldId": {
     "type": "string"
     },
     "Position": {
     "type": "integer"
     },
     "Width": {
     "type": "integer"
     },
     "HeaderText": {
     "type": "string"
     },
     "TypeName": {
     "type": "string"
     },
     "SearchText": {},
     "SortDirection": {},
     "DropDownItems": {},
     "GroupIndex": {},
     "PrimaryKeyIndex": {},
     "IsListColumn": {
     "type": "boolean"
     },
     "Operator": {}
     },
     "required": [
     "Id",
     "FieldId",
     "Position",
     "Width",
     "HeaderText",
     "TypeName",
     "SearchText",
     "SortDirection",
     "DropDownItems",
     "GroupIndex",
     "PrimaryKeyIndex",
     "IsListColumn",
     "Operator"
     ]
     }
     },
     "Me": {
     "type": "boolean"
     },
     "IdObject": {
     "type": "string"
     },
     "HRef": {
     "type": "string"
     }
     }
    }

     

    Thanks very much 🙂

  • forstera Profile Picture
    331 on at

    and here' some real data : 

    {
     "Id": 1416,
     "DataClassId": "Anlass",
     "Designation": "PA-Classes",
     "SearchFields": [
     {
     "Id": 0,
     "FieldId": "Id1",
     "Position": 1,
     "Width": 73,
     "HeaderText": "ID événement",
     "TypeName": "Int32",
     "SearchText": null,
     "SortDirection": null,
     "DropDownItems": null,
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     },
     {
     "Id": 49,
     "FieldId": "AnlassNr",
     "Position": 2,
     "Width": 173,
     "HeaderText": "Numéro d'événement",
     "TypeName": "String",
     "SearchText": null,
     "SortDirection": "asc",
     "DropDownItems": null,
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     },
     {
     "Id": 51,
     "FieldId": "AnlassBez",
     "Position": 3,
     "Width": 301,
     "HeaderText": "Désignation d'événement",
     "TypeName": "String",
     "SearchText": null,
     "SortDirection": null,
     "DropDownItems": null,
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     },
     {
     "Id": 59,
     "FieldId": "Veranstalter",
     "Position": 4,
     "Width": 125,
     "HeaderText": "Organisateur",
     "TypeName": "String",
     "SearchText": null,
     "SortDirection": "asc",
     "DropDownItems": [
     "GBSL",
     "GBSL-FMS",
     "GBSL-GAB",
     "GBSL-HMS",
     "GBSL-MAR",
     "GBSL-WMS",
     "GFB",
     "GFB-EMSp",
     "GFB-ESC",
     "GFB-Pass",
     "GFB-RRM"
     ],
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     },
     {
     "Id": 50,
     "FieldId": "AnlassStatus",
     "Position": 5,
     "Width": 419,
     "HeaderText": "Statut (événement)",
     "TypeName": "String",
     "SearchText": null,
     "SortDirection": null,
     "DropDownItems": null,
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     },
     {
     "Id": 71,
     "FieldId": "AnzahlTeilnehmer",
     "Position": 6,
     "Width": 112,
     "HeaderText": "Par Ok total",
     "TypeName": "Int32",
     "SearchText": null,
     "SortDirection": null,
     "DropDownItems": null,
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     },
     {
     "Id": 72,
     "FieldId": "Leitung IDPerson",
     "Position": 7,
     "Width": 88,
     "HeaderText": "ID personne de la direction générale",
     "TypeName": "Nullable<Int32>",
     "SearchText": null,
     "SortDirection": null,
     "DropDownItems": null,
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     },
     {
     "Id": 73,
     "FieldId": "UNTERRICHTSSPRACHE_BEZEICHNUNG",
     "Position": 8,
     "Width": 55,
     "HeaderText": "Langue d’enseignement",
     "TypeName": "String",
     "SearchText": null,
     "SortDirection": null,
     "DropDownItems": [
     "Allemand (Suisse)",
     "Français",
     "Deutsch",
     "Französisch",
     "Italienisch",
     "Bilingue",
     "Englisch"
     ],
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     },
     {
     "Id": 74,
     "FieldId": "Anlassleitung",
     "Position": 9,
     "Width": 140,
     "HeaderText": "Direction (publication)",
     "TypeName": "String",
     "SearchText": null,
     "SortDirection": null,
     "DropDownItems": null,
     "GroupIndex": null,
     "PrimaryKeyIndex": null,
     "IsListColumn": false,
     "Operator": null
     }
     ],
     "Me": false,
     "IdObject": "Anlass_PA-Classes",
     "HRef": "/restApi/Search/Definitions/Anlass_PA-Classes"
    }

    as you can see, every field has an property 'Id' and a property 'Searchtext'. The idea was to be able to modify the value of the property 'SearchText' of a given Id field before sending the object via a rest api call to get a filtered result

  • DamoBird365 Profile Picture
    8,942 Microsoft Employee on at

    Hi @forstera 

     

    I stuck your json into a compose and came up with the following:

    DamoBird365_0-1625209439700.png

     

    You can filter on the searchfields array for an id equal to a number and then update the searchtext on that result using setProperty.

     

    DamoBird365_1-1625209518508.png

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
    Cheers,
    Damien


    P.S. take a look at my new blog here and like & subscribe to my YouTube Channel thanks 😉

  • forstera Profile Picture
    331 on at

    @DamoBird365 

    Wow, thanks very much , I'll try to do that. 

    But I've the following question.

    if I understand your way, you transfered all the 'Searchfields' into an array than you modified one record after having filtered the array with the setproperty() function

    But after that, I need to recompose my object to send my REST API request.  I dont think (but can you confirm that) that when we work on the values of the array that my original object is modified, too no ? (creating an array from an object is a copy, not a pointer to it no ?)

    Thanks very very much 

  • DamoBird365 Profile Picture
    8,942 Microsoft Employee on at

    Hi @forstera 

     

    There might be an easier way of doing this, albeit I cannot think of one as you are trying to search an array in order to specifically update.  

     

    My thinking would be to use select to get a list of ID's.

     

    DamoBird365_3-1625212747150.png

     

    Stick the result into an apply to each.  Filter the array on each ID and update the searchtext (assuming this is not all Id's, you can use a condition or read here https://www.damobird365.com/if-elseif-else-in-power-automate-simplified/ on how to use an array to pass parameters).  This will allow you to update if match id or leave as is.  Append each result to a new Array.

     

    DamoBird365_1-1625212548477.png

     

    Then initiliase a new object and set the property of the searchfields array to the new array created in the apply to each.

     

    DamoBird365_2-1625212590484.png

     

    How does that work for you?

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
    Cheers,
    Damien


    P.S. take a look at my new blog here and like & subscribe to my YouTube Channel thanks 😉

  • Verified answer
    forstera Profile Picture
    331 on at

    @DamoBird365 thanks very much,

    Yes, I think this is the only way.. I'll try to do it this way.

    Thanks very much for your time 🙂

     

  • forstera Profile Picture
    331 on at

    Hi DamoBird365 and so sorry for a so long time to answer ! As I work for a school, my time to develop new solutions is very very limited.  From March to October, I can't do anything, unfortunately, because current tasks take up all my time.

    But 🙂 from next week it will be time to continue my developments with PowerAutomate ; very excited to do that 🙂

    So thanks again for your great help ; I'll have to refresh my mind  for all what we've done 🙂

    Have a nice day 🙂

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Leaderboard > Power Automate

#1
David_MA Profile Picture

David_MA 103 Super User 2026 Season 1

#2
Haque Profile Picture

Haque 87

#3
trice602 Profile Picture

trice602 63 Super User 2026 Season 1

Last 30 days Overall leaderboard