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

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());