Home > Enterprise >  Want to filter Array out of JSON results - Azure API Management. Policy on the output side
Want to filter Array out of JSON results - Azure API Management. Policy on the output side

Time:02-02

I've spent some time reading and haven't found a solution. I want to filter the results of an array (DATA) based on if the "enable_job_application_form": equals 1.

Meaning I would filter the output to jobs that have the job application form enabled.

I'm doing this currently on the server connecting to the API (for&if statements) but I would like to do the filtering before the api returns the results.

I've not come across a solution where this is done, only solutions where one line is removed. I also have to mention that I do not possess any C# skills, I did some C back in the day along with scripting and some older languages.

Hope you can help as I imagine this must be very simple.

Here is an example of the current results:

    {
    "data": [{
        "id": 286,
        "slug": "16414896142650005207alj",
        "name": "nameofjob286",
        "company_slug": "16344942941460006343JBm",
        "contact_slug": "23048656",
        "secondary_contact_slugs": null,
        "note_for_candidates": "",
        "number_of_openings": 1,
        "minimum_experience": 0,
        "maximum_experience": 3,
        "min_annual_salary": 0,
        "max_annual_salary": 0,
        "salary_type": {
            "id": 2,
            "label": "Annual Salary"
        },
        "job_status": {
            "id": 1,
            "label": "Open"
        },
        "job_status_comment": "",
        "city": "",
        "locality": "",
        "state": null,
        "country": "",
        "address": "",
        "created_on": "2022-01-06T17:20:14.000000Z",
        "created_by": 5207,
        "updated_on": "2022-01-31T11:55:03.000000Z",
        "updated_by": 5207,
        "owner": 5207,
        "enable_job_application_form": 0,
        "job_posting_status": 0,
        "job_code": "J86455032",
        "show_company_logo": 1,
        "specialization": "",
        "qualification_id": 0,
        "currency_id": 52,
        "job_description_text": "",
        "job_description_file": "",
        "job_questions": [],
        "collaborators": [],
        "custom_fields": [{
            "field_id": 1,
            "entity_type": "job",
            "field_name": "deadline",
            "field_type": "date",
            "value": "2022-01-22T00:00:00.000000Z"
        }, {
            "field_id": 2,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": "Intellecta"
        }, {
            "field_id": 3,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": "4348"
        }, {
            "field_id": 4,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": null
        }, {
            "field_id": 5,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 6,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 7,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 8,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 9,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 10,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 11,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 12,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 13,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 14,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }],
        "resource_url": "https:\/\/private",
        "application_form_url": "https:\/\/private",
        "shared_job_image": "",
        }, {
        "id": 284,
        "slug": "16414883861930005207Mge",
        "name": "jobname284",
        "company_slug": "16344942941460006343JBm",
        "contact_slug": "23048656",
        "secondary_contact_slugs": null,
        "note_for_candidates": "",
        "number_of_openings": 1,
        "minimum_experience": 0,
        "maximum_experience": 3,
        "min_annual_salary": 0,
        "max_annual_salary": 0,
        "salary_type": {
            "id": 2,
            "label": "Annual Salary"
        },
        "job_status": {
            "id": 1,
            "label": "Open"
        },
        "job_status_comment": "",
        "city": "",
        "locality": "",
        "state": null,
        "country": "",
        "address": "",
        "created_on": "2022-01-06T16:59:46.000000Z",
        "created_by": 5207,
        "updated_on": "2022-01-31T11:55:03.000000Z",
        "updated_by": 5207,
        "owner": 5207,
        "enable_job_application_form": 0,
        "job_posting_status": 0,
        "job_code": "J76215748",
        "show_company_logo": 1,
        "specialization": "",
        "qualification_id": 0,
        "currency_id": 52,
        "job_description_text": "",
        "job_description_file": "",
        "job_questions": [],
        "collaborators": [],
        "custom_fields": [{
            "field_id": 1,
            "entity_type": "job",
            "field_name": "deadline",
            "field_type": "date",
            "value": "2022-01-22T00:00:00.000000Z"
        }, {
            "field_id": 2,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": "Intellecta"
        }, {
            "field_id": 3,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": "4348"
        }, {
            "field_id": 4,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": null
        }, {
            "field_id": 5,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 6,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 7,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 8,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 9,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 10,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 11,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 12,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 13,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 14,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }],
        "resource_url": "https:\/\/private",
        "application_form_url": "https:\/\/private",
        "shared_job_image": "",
        }, {
        "id": 299,
        "slug": "16433788484340013965OkJ",
        "name": "jobname299",
        "company_slug": "16344942941460006343JBm",
        "contact_slug": "23048656",
        "secondary_contact_slugs": null,
        "note_for_candidates": "",
        "number_of_openings": 1,
        "minimum_experience": 0,
        "maximum_experience": 3,
        "min_annual_salary": 0,
        "max_annual_salary": 0,
        "salary_type": {
            "id": 2,
            "label": "Annual Salary"
        },
        "job_status": {
            "id": 1,
            "label": "Open"
        },
        "job_status_comment": "",
        "city": "",
        "locality": "",
        "state": "",
        "country": "",
        "address": "",
        "created_on": "2022-01-28T14:07:28.000000Z",
        "created_by": 13965,
        "updated_on": "2022-01-28T14:58:07.000000Z",
        "updated_by": 13965,
        "owner": 13965,
        "enable_job_application_form": 0,
        "job_posting_status": 0,
        "job_code": "",
        "show_company_logo": 0,
        "specialization": "",
        "qualification_id": 0,
        "currency_id": 52,
        "job_description_text": "",
        "job_description_file": "",
        "job_questions": [],
        "collaborators": [],
        "custom_fields": [{
            "field_id": 1,
            "entity_type": "job",
            "field_name": "deadline",
            "field_type": "date",
            "value": "2022-02-02T00:00:00.000000Z"
        }, {
            "field_id": 2,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": null
        }, {
            "field_id": 3,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": null
        }, {
            "field_id": 4,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": null
        }, {
            "field_id": 5,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 6,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 7,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 8,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 9,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 10,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 11,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 12,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 13,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 14,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }],
        "resource_url": "https:\/\/private",
        "application_form_url": "https:\/\/private",
        "shared_job_image": "",
        }, {
        "id": 17,
        "slug": "23109811",
        "name": "jobname17",
        "company_slug": "13600728",
        "contact_slug": "23048656",
        "secondary_contact_slugs": null,
        "note_for_candidates": "",
        "number_of_openings": 1,
        "minimum_experience": 0,
        "maximum_experience": 3,
        "min_annual_salary": 0,
        "max_annual_salary": 0,
        "salary_type": {
            "id": 2,
            "label": "Annual Salary"
        },
        "job_status": {
            "id": 1,
            "label": "Open"
        },
        "job_status_comment": "[{\";
        "city": "",
        "locality": "",
        "state": "",
        "country": "",
        "address": "",
        "created_on": "2020-07-03T15:37:58.000000Z",
        "created_by": 6788,
        "updated_on": "2022-01-28T14:50:31.000000Z",
        "updated_by": 5207,
        "owner": 6755,
        "enable_job_application_form": 1,
        "job_posting_status": 0,
        "job_code": "J52254182",
        "show_company_logo": 0,
        "specialization": "",
        "qualification_id": 0,
        "currency_id": 52,
        "job_description_text": "<span style=\",
        "job_description_file": "",
        "job_questions": [],
        "collaborators": [],
        "custom_fields": [{
            "field_id": 1,
            "entity_type": "job",
            "field_name": "deadline",
            "field_type": "date",
            "value": "2033-09-01T00:00:00.000000Z"
        }, {
            "field_id": 2,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": "privatevalue"
        }, {
            "field_id": 3,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": "5390"
        }, {
            "field_id": 4,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": null
        }, {
            "field_id": 5,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 6,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 7,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 8,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 9,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 10,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 11,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 12,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 13,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 14,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }],
        "resource_url": "https:\/\/filtered",
        "application_form_url": "https:\/\/filtered",
        "shared_job_image": "",
    }, {
        "id": 298,
        "slug": "16432996108500013965Rgj",
        "name": "Testjob298",
        "company_slug": "22994397",
        "contact_slug": "23014749",
        "secondary_contact_slugs": null,
        "note_for_candidates": "",
        "number_of_openings": 1,
        "minimum_experience": 0,
        "maximum_experience": 3,
        "min_annual_salary": 0,
        "max_annual_salary": 0,
        "salary_type": {
            "id": 2,
            "label": "Annual Salary"
        },
        "job_status": {
            "id": 1,
            "label": "Open"
        },
        "job_status_comment": "",
        "city": "",
        "locality": "",
        "state": "",
        "country": "",
        "address": "",
        "created_on": "2022-01-27T16:06:50.000000Z",
        "created_by": 13965,
        "updated_on": "2022-01-28T13:39:52.000000Z",
        "updated_by": 6755,
        "owner": 13965,
        "enable_job_application_form": 1,
        "job_posting_status": 0,
        "job_code": "J21310859",
        "show_company_logo": 1,
        "specialization": "",
        "qualification_id": 0,
        "currency_id": 52,
        "job_description_text": "<span style=...private HTML",
        "job_description_file": "",
        "job_questions": [],
        "collaborators": [],
        "custom_fields": [{
            "field_id": 1,
            "entity_type": "job",
            "field_name": "deadline",
            "field_type": "date",
            "value": "2022-02-15T00:00:00.000000Z"
        }, {
            "field_id": 2,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": "private"
        }, {
            "field_id": 3,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": "4699"
        }, {
            "field_id": 4,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "text",
            "value": null
        }, {
            "field_id": 5,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 6,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 7,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 8,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 9,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 10,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 11,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 12,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 13,
            "entity_type": "job",
            "field_name": "nameoffield",
            "field_type": "checkbox",
            "value": null
        }, {
            "field_id": 14,
            "entity_type": "job",
            "field_name": "nameoffield14",
            "field_type": "checkbox",
            "value": null
        }],
        "resource_url": "https:\/\/filteredouttheurl",
        "application_form_url": "https:\/\/filteredouttheurl",
        "shared_job_image": "https:\/\/filteredouttheurl.JPG"
    }],
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "path": "http:\/\/filteredendpointurl,
    "per_page": 100,
    "to": 70,
    "total": 70,
    "first_page_url": "http:\/\/filteredendpointurl?page=1",
    "next_page_url": null,
    "last_page_url": "http:\/\/filteredendpointurl?page=1",
    "prev_page_url": null
}

Here is an example of wanted results: Note I had to trim the answer because of the 30000 limit.

{
"data": [{
    "id": 17,
    "slug": "23109811",
    "name": "jobname17",
    "company_slug": "13600728",
    "contact_slug": "23048656",
    "secondary_contact_slugs": null,
    "note_for_candidates": "",
    "number_of_openings": 1,
    "minimum_experience": 0,
    "maximum_experience": 3,
    "min_annual_salary": 0,
    "max_annual_salary": 0,
    "salary_type": {
        "id": 2,
        "label": "Annual Salary"
    },
    "job_status": {
        "id": 1,
        "label": "Open"
    },
    "job_status_comment": "[{\";
    "city": "",
    "locality": "",
    "state": "",
    "country": "",
    "address": "",
    "created_on": "2020-07-03T15:37:58.000000Z",
    "created_by": 6788,
    "updated_on": "2022-01-28T14:50:31.000000Z",
    "updated_by": 5207,
    "owner": 6755,
    "enable_job_application_form": 1,
    "restremovedforexample":1
}, {
    "id": 298,
    "slug": "16432996108500013965Rgj",
    "name": "Testjob298",
    "company_slug": "22994397",
    "contact_slug": "23014749",
    "secondary_contact_slugs": null,
    "note_for_candidates": "",
    "number_of_openings": 1,
    "minimum_experience": 0,
    "maximum_experience": 3,
    "min_annual_salary": 0,
    "max_annual_salary": 0,
    "salary_type": {
        "id": 2,
        "label": "Annual Salary"
    },
    "job_status": {
        "id": 1,
        "label": "Open"
    },
    "job_status_comment": "",
    "city": "",
    "locality": "",
    "state": "",
    "country": "",
    "address": "",
    "created_on": "2022-01-27T16:06:50.000000Z",
    "created_by": 13965,
    "updated_on": "2022-01-28T13:39:52.000000Z",
    "updated_by": 6755,
    "owner": 13965,
    "enable_job_application_form": 1,
    "restremovedforexample":1
    }],
    "resource_url": "https:\/\/filteredouttheurl",
    "application_form_url": "https:\/\/filteredouttheurl",
    "shared_job_image": "https:\/\/filteredouttheurl.JPG"
}]

CodePudding user response:

The most straightforward way may be:

<set-body>@{
    var json = context.Response.Body.As<JObject>();
    var data = json["data"];
    foreach(var item in data.ToArray())
    {
        if ((int)item["enable_job_application_form"] == 1)
        {
            item.Remove();
        }
    }
    return json.ToString();
}</set-body>
  •  Tags:  
  • Related