JSON extract value from payload | issue in extraction

Dear Team

I have below JSON payload .

I wanted to extract paynumber as json variable.

i tried using "$.usefullFields.paynumber".

However the value is not getting extracted.

Do you have any ideas?, I am running out of luck. No idea why we have this strange behavior!! 🙂

{  
"usefull_val": "f243b5d507bc4c1a8e74b3c926390da468f5e161",
  "usefullFields": {
    "paynumber": "002022059182"
  },
  "customuser": {
    "timezone": "America/Los_Angeles"
  },
  "costomer_source": {
    "id": "e16e9a992d2f4044",
    "url": "http://example.com/e16e9a992d2f4044"
  }
}
0 4 303
4 REPLIES 4

I'm assuming you are sourcing from the request payload?

I've been able to extract the paynumber and assign it to a req.body.paynumber variable using the following:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-ExtractReqPayload">
    <DisplayName>EV-ExtractReqPayload</DisplayName>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <JSONPayload>
        <Variable name="req.body.paynumber">
            <JSONPath>$.usefullFields.paynumber</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">request</Source>
</ExtractVariables>

yes, you are right, its request payload.

however the same straightforward one does not work for me.

BTW , paynumber is always a number .

Below is my policy. I use opdk latest version.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV.Body">
    <DisplayName>EV.Body</DisplayName>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <Properties/>
    <JSONPayload>
        <Varable name="payNumber">
            <JSONPath>$.usefullFields.paynumber</JSONPath>
</Varable> <Variable name="countlimit"> <JSONPath>$.countlimit</JSONPath> </Variable> </JSONPayload> </ExtractVariables>

Anyways , i solved it by using js and it worked fine. I dont prefer the js though.

<br>var inReq= context.getVariable("request.content"); <br>var inReqObject = JSON.parse(inReq); <br>var payNumber= inReqObject.usefullFields.paynumber;<br>context.setVariable('payNumber', payNumber);

odd that it doesn't work. does your policy extract countlimit correctly? the only time i've encountered issues with extract is when i've set my content-type to 'text' rather than 'application/json' in postman.

i agree - JS isn't ideal

Make sure you are setting the Content Type to application/json

Extract Variables policy will need that if it needs to parse the JSON request.