Map Incoming JSON Body

I have a requirement for a pipeline that is supposed to accept an incoming JSON body/payload of attributes in place of sending parameters via the task URL for security related reasons.

For the sake of simplicity, we are trying to accept something in a similar format as seen here:

{
“ID”: 15,
“firstName”: “Jon”,
“lastName”: “Smith”
}

So far we have tried to “accept” incoming data through a Mapper snap with no success. We have tested the pipeline by executing the task URL, and passing the JSON body data in tandem. We’ve tried formatting a Mapper snap in the following way at the beginning of our pipeline:

Is there a way of doing this correctly with the default, OOTB snaps? We do not currently utilize any extra snap packs. Thank you for the help in advance.

The beginning snap should be a JSON Parser that would feed into your Mapper snap.

1 Like

Hi del, thanks for the response.

To clarify, I shouldn’t need to place anything else before the JSON Parser snap correct? Everything that’s being fed to the pipeline via the JSON body/payload will be read by the Parser and then passed to my Mapper?

That is correct. Two things to note:

  • this may be obvious, but the client/consumer must submit an HTTP POST method instead of a GET method
  • as a matter of practice, the consumer should set the HTTP header Content-Type to "application/json "(although I’m not certain it’s necessary for SnapLogic with the JSON Parser as the beginning snap)
1 Like

Excellent, both very helpful tips.

I was able to test this method, and can confirm it works great. Thanks again for the quick help!