jsonazureazure-functionsazure-data-factoryazure-logic-apps

Azure Data Factory find JSON object by specific string/value then select a different value


I have a Legacy API (with no Dev support) I am pulling data out of. Below is the output of activity().outputs.body.data

                {
                "column_id": 1,
                "type": "text",
                "varname": "foo_id",
                "label": "Foo ID",
                "value": "1234",
                "is_core": "yes",
                "orig_label": "Foo ID"
            },
            {
                "column_id": 23,
                "type": "text",
                "varname": "Foo_name",
                "label": "Foo name",
                "value": "blah blah",
                "is_core": "yes",
                "orig_label": "Foo name"
            },
            {
                "column_id": 15,
                "type": "text",
                "varname": "foo_bar",
                "label": "Foo Bar",
                "value": "beers beers beers",
                "is_core": "yes",
                "orig_label": "Foo Bar"
            }

Unfortunately, the Data is structured in such a way that if in the front end there is a blank value, then the API does not pass an Object. So, you may get 10 objects in the JSON, you may get 4. This means I cannot be lazy and select the value by the data[1].value.

I need to dynamically search for the varname, then in that object select the value.

So far, I have something like this:

@substring(coalesce(activity().outputs?.body?.data, ''),'foo_id').value

What I want to return in the above is '1234' if that object exists, or if it does not exist - just pass a ''

But I am not getting the output I expect. Once I have the dynamic content string sussed, I will be able to do the rest of them - but I am stuck on this one aspect.

Hopefully someone can help with the dynamic content query string.


Solution