How to sort a JSON array in descending order in ServiceNow

Johannes Mweli
Giga Guru

Hi ServiceNow Community Developers,

Do you know if there is a way to sort a JSON array in descending order in ServiceNow? 

For instance I have the following scheduled job that I wrote in order to see if I can sort a JSON array. It runs ok however it not giving me the expected results. Please take a look and advise.

jsonArraySorting();
function jsonArraySorting() {
var caseRecArray = [{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Technology Support","subcategory":""}, {"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Data Management","subcategory":""},
{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Accounting - Core","subcategory":""},{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Accounting - Mutual Funds","subcategory":""}];

gs.print (" array size " + caseRecArray.length);

var sortedArray = caseRecArray.sort(function(a, b){
return a.category - b.category;
});
gs.print ("sorted array " + JSON.stringify(sortedArray));
}

Thanks,

Johannes

 

1 ACCEPTED SOLUTION

Johannes Mweli
Giga Guru

Hi ServiceNow Community Developers,

 

Nevermind, I figured it out.

Here is the solution:

jsonArraySorting();
function jsonArraySorting() {
var caseRecArray = [{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Technology Support","subcategory":""}, {"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Data Management","subcategory":""},
{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Accounting - Core","subcategory":""},{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Accounting - Mutual Funds","subcategory":""}];

gs.print (" array size " + caseRecArray.length);

var sortedArray = caseRecArray.sort(function(a, b){
var x = a.category;
var y = b.category;
return x < y ? -1 : x > y ? 1 : 0;
});
gs.print ("sorted array " + JSON.stringify(sortedArray));
}

 

View solution in original post

2 REPLIES 2

Johannes Mweli
Giga Guru

Hi ServiceNow Community Developers,

 

Nevermind, I figured it out.

Here is the solution:

jsonArraySorting();
function jsonArraySorting() {
var caseRecArray = [{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Technology Support","subcategory":""}, {"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Data Management","subcategory":""},
{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Accounting - Core","subcategory":""},{"number":"CS0125547","priority":"4 - Low","account":"XXX Sales Demo A","state":"Cancelled","short_description":"JAKARTA UPGRADE TEST","opened_at":"2017-12-09 12:44:26","sys_updated_on":"2017-12-09 13:36:00","sys_id":"14ab1c37137603007d23b5104244b0af","u_customer_tracking_number":"","active":"false","opened_by":"Gary Eason","sys_updated_by":"geason","u_environment":"","description":"No action is required. please ignore.\nthis is just a Jakarta upgrade test","closed_at":"2017-12-09 13:36:00","closed_by":"Gary Eason","u_alias":"","u_type":"System Usability Case","u_bug_tracker_number":"","u_version_resolved":"","category":"Accounting - Mutual Funds","subcategory":""}];

gs.print (" array size " + caseRecArray.length);

var sortedArray = caseRecArray.sort(function(a, b){
var x = a.category;
var y = b.category;
return x < y ? -1 : x > y ? 1 : 0;
});
gs.print ("sorted array " + JSON.stringify(sortedArray));
}

 

also to sort descending just flip this

return x < y ? -1 : x > y ? 1 : 0;

to this 

return y < x ? -1 : y > x ? 1 : 0;