Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

get array from payload

Hafsa1
Mega Sage

I'm getting below in payload:

I only want array inside [] highlighted in bold and then get array "user_name", "action" and "groups_name" and create task for individual. ANy help please

 

<payload>{"action":"Add to groups","all_groups":"[{\"user_name\":\"a89b564ddb54630002d026f5ca9619d7\",\"uar_current_groups_display\":\"No current Groups\",\"action\":\"Add to groups\",\"groups_name\":\"077ffcd8dbf11058408126f5ca96190d,a8fe1fcbdb39dc1082ac53835b961928\"},{\"user_name\":\"0ee644f897f9115026b4f1dfe153afc0\",\"uar_current_groups_display\":\"No current Groups\",\"action\":\"Add to groups\",\"groups_name\":\"8a63abd1dbd0545047ecfdf96896193f,d832ed1adb605340363190b8db9619f7\"}]","groups_name":"8a63abd1dbd0545047ecfdf96896193f,d832ed1adb605340363190b8db9619f7","subject_person":"f31f775adbfb3454f79a8f104a96190b","uar_current_groups_display":"No current Groups","uar_justification":"test","user_name":"0ee644f897f9115026b4f1dfe153afc0"}</payload>

1 ACCEPTED SOLUTION

Bhavya11
Kilo Patron
Kilo Patron

hi @Hafsa1 

print an JSON array directly, which results in the [object Object] message. To properly display the contents of the array, you can convert it to a string using JSON.stringify.

try below code in background script

 

var payloadString = '{"action":"Add to groups","all_groups":"[{\\"user_name\\":\\"a89b564ddb54630002d026f5ca9619d7\\",\\"uar_current_groups_display\\":\\"Netwrok\\",\\"action\\":\\"Add to groups\\",\\"groups_name\\":\\"077ffcd8dbf11058408126f5ca96190d,a8fe1fcbdb39dc1082ac53835b961928\\"},{\\"user_name\\":\\"0ee644f897f9115026b4f1dfe153afc0\\",\\"uar_current_groups_display\\":\\"No current Groups\\",\\"action\\":\\"Add to groups\\",\\"groups_name\\":\\"8a63abd1dbd0545047ecfdf96896193f,d832ed1adb605340363190b8db9619f7\\"}]","groups_name":"8a63abd1dbd0545047ecfdf96896193f,d832ed1adb605340363190b8db9619f7","subject_person":"f31f775adbfb3454f79a8f104a96190b","uar_current_groups_display":"No current Groups","uar_justification":"test","user_name":"0ee644f897f9115026b4f1dfe153afc0"}';


// Parse the main payload string to a JSON object
var payload = JSON.parse(payloadString);

// Parse the 'all_groups' string to a JSON array
var allGroupsArray = JSON.parse(payload.all_groups);

gs.print('All Groups Array: ' + JSON.stringify(allGroupsArray));
function createTasksForUsers(groupsArray) {
    groupsArray.forEach(function(group) {
        var userName = group.user_name;
        var action = group.action;
        var groupsName = group.groups_name;

        // Create task (replace with actual task creation logic)
        gs.print('Creating task for user:' + userName);
        gs.print('Action: ' + group.action);
        gs.print("Groups: " + groupsName);

        // you would create a task record like this:
        /*
        var taskGr = new GlideRecord('task');
        taskGr.initialize();
        taskGr.short_description = 'Task for user: ' + userName;
        taskGr.description = 'Action: ' + action + ', Groups: ' + groupsName;
        taskGr.insert();
        */
    });
}

// Call the function
createTasksForUsers(allGroupsArray);

 

 

Please mark helpful & correct answer if it's really worthy for you.

 

Thanks,

BK

View solution in original post

3 REPLIES 3

Bhavya11
Kilo Patron
Kilo Patron

Hi @Hafsa1 ,

You can try something like below 

 

var payloadString = '{"action":"Add to groups","all_groups":"[{\\"user_name\\":\\"a89b564ddb54630002d026f5ca9619d7\\",\\"uar_current_groups_display\\":\\"Netwrok\\",\\"action\\":\\"Add to groups\\",\\"groups_name\\":\\"077ffcd8dbf11058408126f5ca96190d,a8fe1fcbdb39dc1082ac53835b961928\\"},{\\"user_name\\":\\"0ee644f897f9115026b4f1dfe153afc0\\",\\"uar_current_groups_display\\":\\"No current Groups\\",\\"action\\":\\"Add to groups\\",\\"groups_name\\":\\"8a63abd1dbd0545047ecfdf96896193f,d832ed1adb605340363190b8db9619f7\\"}]","groups_name":"8a63abd1dbd0545047ecfdf96896193f,d832ed1adb605340363190b8db9619f7","subject_person":"f31f775adbfb3454f79a8f104a96190b","uar_current_groups_display":"No current Groups","uar_justification":"test","user_name":"0ee644f897f9115026b4f1dfe153afc0"}';


// Parse the main payload string to a JSON object
var payload = JSON.parse(payloadString);

// Parse the 'all_groups' string to a JSON array
var allGroupsArray = JSON.parse(payload.all_groups);


function createTasksForUsers(groupsArray) {
    groupsArray.forEach(function(group) {
        var userName = group.user_name;
        var action = group.action;
        var groupsName = group.groups_name;

        // Create task (replace with actual task creation logic)
        gs.print('Creating task for user:' + userName);
        gs.print('Action: ' + group.action);
        gs.print("Groups: " + groupsName);

        // you would create a task record like this:
        /*
        var taskGr = new GlideRecord('task');
        taskGr.initialize();
        taskGr.short_description = 'Task for user: ' + userName;
        taskGr.description = 'Action: ' + action + ', Groups: ' + groupsName;
        taskGr.insert();
        */
    });
}

// Call the function
createTasksForUsers(allGroupsArray);

 

 

Please mark helpful & correct answer if it's really worthy for you.

 

Thanks,

BK

Hafsa1
Mega Sage
when I'm putting this in background script it is saying:
*** Script: [object Object],[object Object]

+++
var allGroupsArray = JSON.parse(payload.all_groups);
gs.print(allGroupsArray );
+++

Bhavya11
Kilo Patron
Kilo Patron

hi @Hafsa1 

print an JSON array directly, which results in the [object Object] message. To properly display the contents of the array, you can convert it to a string using JSON.stringify.

try below code in background script

 

var payloadString = '{"action":"Add to groups","all_groups":"[{\\"user_name\\":\\"a89b564ddb54630002d026f5ca9619d7\\",\\"uar_current_groups_display\\":\\"Netwrok\\",\\"action\\":\\"Add to groups\\",\\"groups_name\\":\\"077ffcd8dbf11058408126f5ca96190d,a8fe1fcbdb39dc1082ac53835b961928\\"},{\\"user_name\\":\\"0ee644f897f9115026b4f1dfe153afc0\\",\\"uar_current_groups_display\\":\\"No current Groups\\",\\"action\\":\\"Add to groups\\",\\"groups_name\\":\\"8a63abd1dbd0545047ecfdf96896193f,d832ed1adb605340363190b8db9619f7\\"}]","groups_name":"8a63abd1dbd0545047ecfdf96896193f,d832ed1adb605340363190b8db9619f7","subject_person":"f31f775adbfb3454f79a8f104a96190b","uar_current_groups_display":"No current Groups","uar_justification":"test","user_name":"0ee644f897f9115026b4f1dfe153afc0"}';


// Parse the main payload string to a JSON object
var payload = JSON.parse(payloadString);

// Parse the 'all_groups' string to a JSON array
var allGroupsArray = JSON.parse(payload.all_groups);

gs.print('All Groups Array: ' + JSON.stringify(allGroupsArray));
function createTasksForUsers(groupsArray) {
    groupsArray.forEach(function(group) {
        var userName = group.user_name;
        var action = group.action;
        var groupsName = group.groups_name;

        // Create task (replace with actual task creation logic)
        gs.print('Creating task for user:' + userName);
        gs.print('Action: ' + group.action);
        gs.print("Groups: " + groupsName);

        // you would create a task record like this:
        /*
        var taskGr = new GlideRecord('task');
        taskGr.initialize();
        taskGr.short_description = 'Task for user: ' + userName;
        taskGr.description = 'Action: ' + action + ', Groups: ' + groupsName;
        taskGr.insert();
        */
    });
}

// Call the function
createTasksForUsers(allGroupsArray);

 

 

Please mark helpful & correct answer if it's really worthy for you.

 

Thanks,

BK