Loop through JSON on Client Side
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2017 08:12 AM
Does anyone know of an efficient way of looping through JSON on the client side? My JSON looks like this:
"ticket_Number":"INC123456",
"short_description":"this is a the short description"
}
]
}
The above is currently being returned from a script include. I am calling the script include on the client side and storing the JSON in a variable like below:
var status = response.responseXML.documentElement.getAttribute("answer");
The variable status will hold the JSON I listed above. I am basically wanting to be able to grab the data like:
data.ticket_Number
data.short_description
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2017 10:05 AM
We have something similar. At the end of the glideajax, we do ga.getXMLAnswer(callbackFunction); Then in the callback function it looks like:
function callbackFunction(user){
user = user.evalJSON();
//at this point we can start referencing the data such as user.u_location
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2017 10:40 AM
Kristen,
Did you do anything special in your script include?
My return looks something similar to this:
var response = request.execute();
var responseBody = response.getBody();
return responseBody;
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-19-2017 10:56 AM
Our script include builds the return like this:
var results = {};
var getInfo = new GlideRecord('table_name');
getInfo.query();
results.location = getInfo.getValue('location');
...
return new JSON().encode(results);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-11-2018 12:26 AM
this e.g. might help you...
sample json extracting various elements in json obj, for debugging/compiling use Snow -> Scripts - Background
var responseBody = '[{"number":0,"fields":[{"displayField":"fname","searchFields":"name","label":"Department1","type":"reference","valueField":"sys_id","value":{"value":"221f3db5c6112284009f4becd3039cc9","displayValue":"Development"},"table":"cmn_department1"},{"Dep":"Account Number","type":"text","value":"asdf"},{"min":0,"max":100,"label":"Percentage","type":"number","value":1},{"label":"test4","type":"text","value":"asdfadsf"}]},{"number":14,"fields":[{"displayField":"lname","searchFields":"name","label":"Department2","type":"reference","valueField":"sys_id","value":{"value":"a581ab703710200044e0bfc8bcbe5de8","displayValue":"Finance"},"table":"cmn_department2"},{"Dep":"SC Number","type":"text","value":"asdfadsfadf"},{"min":0,"max":100,"label":"Percentage","type":"number","value":3},{"label":"test4","type":"text","value":"asdfasdfadsf"}]}]';
var obj = JSON.parse(responseBody);
var objLen = obj.length;
gs.print(i+ ' objLen :'+objLen );
gs.print('-----------------------------');
gs.print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
for (var i = 0, j = obj.length; i < j; i += 1) {
var fieldsLen = obj[i].fields.length;
gs.print( '-> fieldsLen :'+fieldsLen );
gs.print('-----------------------------');
var num = obj[i].number;
gs.print(i+ ' num :'+num );
gs.print('');
var fields = obj[i].fields[0].displayField;
gs.print(i+ ' fields:'+fields);
gs.print('');
var value= obj[i].fields[0].value.value;
gs.print(i+ ' value:'+value);
gs.print('');
var table= obj[i].fields[0].table;
gs.print(i+ ' table:'+table);
gs.print('');
var dep= obj[i].fields[1].Dep;
gs.print(i+ ' dep:'+dep);
gs.print('');
gs.print('-------------------------------------------');
}