com.glide.collections.StringList to JS Array

JeremiP
Tera Guru

gs.getUser().getMyGroups() returns an object of the Java type com.glide.collections.StringList
How to easily convert it into a JS Array?

.split(','), JSON.parse(groups) don't work. The first one results in an Object, second complains about no comma characters.

var groups = gs.getUser().getMyGroups();
gs.info(groups);
gs.info(typeof(groups));
gs.info(Array.isArray(groups));
gs.info(groups.split(','));
gs.info(JSON.parse(groups));
*** Script: [4f7af9c91bcc541028544002cd4bcbab]
*** Script: object
*** Script: false
*** Script: undefined
Evaluator: org.mozilla.javascript.EcmaError: Missing comma in array literal
   Caused by error in script at line 155
Evaluator: org.mozilla.javascript.EcmaError: Missing comma in array literal
   Caused by error in script at line 9

      6: gs.info(typeof(groups));
      7: gs.info(Array.isArray(groups));
      8: gs.info(groups.split(','));
==>   9: gs.info(JSON.parse(groups));
1 ACCEPTED SOLUTION

Lorenzo Persich
ServiceNow Employee
ServiceNow Employee

j2js is only available in global scope: as alternative you may consider the convertArray method of ArrayUtil Script include.

 

var arr_util = new global.ArrayUtil();
var my_groups = arr_util.convertArray(gs.getUser().getMyGroups());

View solution in original post

2 REPLIES 2

Ankur Bawiskar
Tera Patron
Tera Patron

@JeremiP 

please do this

var groupsArray = j2js(gs.getUser().getMyGroups().toArray());

gs.info('javascript array ' + groupsArray); // this will give your the javascript array

gs.info('length is:' + groupsArray.length);

OR

var groups = gs.getUser().getMyGroups().toArray();

var groupsArr = groups.join().split(',');

gs.info(groupsArr); // this prints javascript array

gs.info(groupsArr.length);

Regards
Ankur

 

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Lorenzo Persich
ServiceNow Employee
ServiceNow Employee

j2js is only available in global scope: as alternative you may consider the convertArray method of ArrayUtil Script include.

 

var arr_util = new global.ArrayUtil();
var my_groups = arr_util.convertArray(gs.getUser().getMyGroups());