Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

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;