- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 02:31 AM
Hello All,
I have a json data as below, I want to fetch data which has same "rota" value.
eg:
var group = '096fb59173062300e7af6238edf6a783';
var rota = new OnCallRotation();
var currentOnCall = rota.getEscalatees(group);
gs.print("oncall members"+JSON.stringify(currentOnCall));
The code returning the oncall members datails, I want to fetch the data which has "rota" : '349f399173062300e7af6238edf6a75e'. If the rota value matched, I need all the data of matched rota like "memberId","memberIds","userId","userIds","roster" etc. Can anyone please help me with this.
Json Data:
[
{
"memberId": "119f399173062300e7af6238edf6a7e7",
"memberIds": [],
"userId": "62826bf03710200044e0bfc8bcbe5df1",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "9d9f399173062300e7af6238edf6a7ec"
},
{
"memberId": "7daf799173062300e7af6238edf6a7a2",
"memberIds": [],
"userId": "d2826bf03710200044e0bfc8bcbe5dc9",
"userIds": [],
"roster": "b5af799173062300e7af6238edf6a7a2",
"rota": "35af799173062300e7af6238edf6a79e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "06af799173062300e7af6238edf6a7cd"
},
{
"memberId": "1d9f399173062300e7af6238edf6a7e8",
"memberIds": [],
"userId": "a8f98bb0eb32010045e1a5115206fe3a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "d99f399173062300e7af6238edf6a7ef"
},
Thanks.
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 03:11 AM
Hi @MS17,
You could use something like this, you may need to tweak your return object as per your needs.
var json = [
{
"memberId": "119f399173062300e7af6238edf6a7e7",
"memberIds": [],
"userId": "62826bf03710200044e0bfc8bcbe5df1",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "9d9f399173062300e7af6238edf6a7ec"
},
{
"memberId": "7daf799173062300e7af6238edf6a7a2",
"memberIds": [],
"userId": "d2826bf03710200044e0bfc8bcbe5dc9",
"userIds": [],
"roster": "b5af799173062300e7af6238edf6a7a2",
"rota": "35af799173062300e7af6238edf6a79e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 1,
"isOverride": false,
"rotationScheduleId": "3daf799173062300e7af6238edf6a79e",
"memberScheduleId": "06af799173062300e7af6238edf6a7cd"
},
{
"memberId": "1d9f399173062300e7af6238edf6a7e8",
"memberIds": [],
"userId": "a8f98bb0eb32010045e1a5115206fe3a",
"userIds": [],
"roster": "9d9f399173062300e7af6238edf6a7e5",
"rota": "349f399173062300e7af6238edf6a75e",
"group": "096fb59173062300e7af6238edf6a783",
"escalationGroups": [],
"deviceId": "",
"deviceIds": [],
"isDevice": false,
"order": 2,
"isOverride": false,
"rotationScheduleId": "119f399173062300e7af6238edf6a7df",
"memberScheduleId": "d99f399173062300e7af6238edf6a7ef"
}];
var values = getValues(json, '349f399173062300e7af6238edf6a75e');
gs.print(values);
function getValues(obj, rota) {
var values = [];
for (var i = 0; i < obj.length; i++) {
if (obj[i].rota === rota) {
values.push(obj[i].memberId);
values.push(obj[i].memberIds);
values.push(obj[i].userId);
values.push(obj[i].userIds);
values.push(obj[i].roster);
}
}
return values;
}
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 04:44 AM
Sure:
You could do that like this:
var group = '096fb59173062300e7af6238edf6a783';
var rota = new OnCallRotation();
var currentOnCall = rota.getEscalatees(group);
var json = JSON.stringify(currentOnCall);
var values = getValues(json, '349f399173062300e7af6238edf6a75e');
gs.print(values);
function getValues(obj, rota) {
var values = [];
for (var i = 0; i < obj.length; i++) {
if (obj[i].rota === rota) {
var curObj = {};
curObj.memberId = obj[i].memberId;
curObj.memberIds= obj[i].memberIds;
curObj.userId= obj[i].userId;
curObj.userIds= obj[i].userIds;
curObj.roster= obj[i].roster;
values.push(curObj);
}
}
return values;
}
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 04:03 AM
Hi @MS17,
That makes sense. You are doing a stringify now, which changes an object to plain text.
In order for this to work we will need the Json as an object.
I'm not sure how you stored it, so you'll have to change var json = JSON.stringify(currentOnCall); to either var json = currentOnCall;
or var json = JSON.parse(currentOnCall);
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 04:14 AM
Hi Peter,
I have modified as you mentioned, below are the results.
1. when I used var json = JSON.parse(currentOnCall);
2 when I used var json = currentOnCall;

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 04:18 AM
Could you add gs.print(JSON.stringify(currentOnCall));
It looks like you're not receiving data.
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 04:33 AM
Hi Peter,
Yes, I have passed wrong group. Now it is returning data. I have one more query, How to get the same data as key pair value. because I need to use the key in my script. Is it possible to get the data as below. If rota is matched, then I need all the data in the below format.
{ "memberId": "119f399173062300e7af6238edf6a7e7", "memberIds": [], "userId": "62826bf03710200044e0bfc8bcbe5df1", "userIds": [], "roster": "9d9f399173062300e7af6238edf6a7e5", "rota": "349f399173062300e7af6238edf6a75e", "group": "096fb59173062300e7af6238edf6a783", "escalationGroups": [], "deviceId": "", "deviceIds": [], "isDevice": false, "order": 1, "isOverride": false, "rotationScheduleId": "119f399173062300e7af6238edf6a7df", "memberScheduleId": "9d9f399173062300e7af6238edf6a7ec" },

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 04:44 AM
Sure:
You could do that like this:
var group = '096fb59173062300e7af6238edf6a783';
var rota = new OnCallRotation();
var currentOnCall = rota.getEscalatees(group);
var json = JSON.stringify(currentOnCall);
var values = getValues(json, '349f399173062300e7af6238edf6a75e');
gs.print(values);
function getValues(obj, rota) {
var values = [];
for (var i = 0; i < obj.length; i++) {
if (obj[i].rota === rota) {
var curObj = {};
curObj.memberId = obj[i].memberId;
curObj.memberIds= obj[i].memberIds;
curObj.userId= obj[i].userId;
curObj.userIds= obj[i].userIds;
curObj.roster= obj[i].roster;
values.push(curObj);
}
}
return values;
}
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.