- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-04-2024 08:48 AM
I have a scripted REST API from which I am attempting to parse JSON.
Unfortunately when try to log the variables, I am getting an undefined value.
What am I missing?
Scripted REST API:
var requestBody = request.body.dataString;
var parsedData = JSON.parse(requestBody);
var poNum = parsedData.purchaseOrderDetails.purchaseOrderNumber;
gs.info("poNum: " + poNum);
JSON being sent to endpoint:
{
"purchaseOrderDetails":[
{
"purchaseOrderNumber":"DO 5600 24081313331"
}
]
}
Result in the logs:
poNum: undefined
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-06-2024 07:36 AM
Solution:
var requestBody = request.body.data;
var strJSON = JSON.stringify(requestBody);
var parsedJSON = new JSONParser();
var parsed = parsedJSON.parse(strJSON);
var poNum = parsed.purchaseOrderDetails[0].purchaseOrderNumber;
gs.info("poNum: " + poNum);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-04-2024 09:55 AM
Hi @JJG_SNOW ,
Try this purchaseOrderDetails is array of object, first you need to access the array and then object attributes
var requestBody = request.body.dataString;
var parsedData = JSON.parse(requestBody);
var poNum = parsedData.purchaseOrderDetails[0]['purchaseOrderNumber'];
gs.info("poNum: " + poNum);
Hope this helps!!!
Thank you,
Hemanth
Certified Technical Architect (CTA), ServiceNow MVP 2024, 2025
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-06-2024 07:36 AM
Solution:
var requestBody = request.body.data;
var strJSON = JSON.stringify(requestBody);
var parsedJSON = new JSONParser();
var parsed = parsedJSON.parse(strJSON);
var poNum = parsed.purchaseOrderDetails[0].purchaseOrderNumber;
gs.info("poNum: " + poNum);