Forum Discussion
- swright5 years agoNew Contributor III
I attached a copy of the json.
I am currently using a fix for the issue in which I use a filter snap after the mapper. It works, but I think that I should be able to select from the values in the mapper and not have to use the filter. Although it looked to me like an array, it seems to be a string which is why many of the things I tried didn’t work.
Thanks,
Scott
(Attachment Copy_output0.json is missing)
- swright5 years agoNew Contributor III
Sorry. My attachment didn’t get through due to a .json extension. I’m sending it now after change the extension to .txt.
Copy_output0.txt (3.56 KB)
- ptaylor5 years agoEmployee
You are dealing with 2 separate input documents. The Mapper gets these one-by-one, not both of them at once.
Assuming the Mapper’s input is coming from a Json Parser, you can deal with this by unchecking “Process array” in the Json Parser settings. Then the Mapper will receive a single document whose root is an array. Then your expression would look like this:
jsonPath($, "$[*]['env:Envelope']['env:Body']['ns0:uploadFileToUcmResponse'].result['$']")[1]
Another approach is to filter the Mapper’s input so that you’re only getting the second document. To do that, insert a Head snap with an offset of 1.
- Supratim5 years agoContributor III
@swright Try attached pipeline. If you are absolutely sure proper values comes on element 0/1 position then use[0/1] it else can filter over -1 criteria. I have added both in mapper.
community_Array_2020_10_29.slp (6.7 KB)- swright5 years agoNew Contributor III
These looked like great solutions, but although they work perfectly in your sample pipeline, I can’t get them to work in mine. Mine are the output of a SOAP Execute Snap. This is one of the errors I am getting:
Thanks,
Scott