The CreatorCon Call for Content is officially open! Get started here.

How to fetch specific data from JSON object

MS17
Tera Contributor

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.
  

2 ACCEPTED SOLUTIONS

Peter Bodelier
Giga Sage

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.

View solution in original post

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.

View solution in original post

11 REPLIES 11

Peter Bodelier
Giga Sage

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.

Hello Peter,

 

Thanks for your reply.

I have tried your code, But it is not returning anything. Can you please check.

 

oncall.JPG

Thanks.

Hi @MS17,

 

That is strange: 

PeterBodelier_0-1697194273352.png

 

 

Have you adjusted anything in the code? If so, please share it.


Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.

Hi Peter,

I haven't used the json data directly. I have stored the json data & used it as below,

 

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) {
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;
}