Identitynow webservices connector json response mapping

Hello,

I have a json response like below. The userids are the list of accounts. What should be the response mapping configured in the account aggregation ? I tried root path as $ and in the response mapping userid : userids[*] but it only return one account (userid is in the account schema).

[
{
“cohortid”: 001,
“userids”: [
123456,
456789,
891836,

]
}
]

Thanks
Vinit Lodaya

Have you tried with: $.[0].userids.*

Hello @alejandro_gilhammer,
Tried $.[0].userids.* with blank root path and it doesnt return any accounts.

Thanks
Vinit Lodaya

It’s possible that your JSON response is not valid JSON. Technically, 001 is not a valid number type in JSON, but your cohortid uses 001. A valid number would be 1. If cohortid needs the leading 0’s, then it would be more appropriate for it to be a string type, like “001”.

I’m not sure if the CCG logs are capturing this type of error, but it can certainly cause issues with any tool that needs to consume JSON. You can see this error in action by pasting your sample in a JSON validator tool, like json validator at DuckDuckGo.

My educated guess is that cohortid is causing validation issues and preventing any JSONpath from working. If you have control over target webservice, then making cohortid a string might fix this. If you don’t have control, then I suspect you will need to create an after operation rule to manually parse this response.

Hello @colin_mckibben,

I changed the cohortid to 001 to mask confidential data. It is a 3-digit number without quotes. I validated the json at DuckDuckGo and it does say that the json is valid. My guess is that the connector is considering the entire list of userids as one user when I used $[0] as the root path and userids.[*] in the response mapping for userid. I will take a look at the ccg logs to see if I can find something useful.

Thanks
Vinit Lodaya