How to pass object value into array
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā11-19-2022 09:14 PM - edited ā11-19-2022 11:16 PM
Hi
I'm not getting expected output and correct me if something missing
My script :
var gr= new GlideRecord('incident');
gr.addQuery('sys_id','c2b3b1e2db3f9090bf6c3762ba9619a6');
gr.query();
while(gr.next()){
var arr =[];
var obj={};
var text= {"results": [{"status": "fail","value":"Test1"},{"status": "fail","value":"Test2"}]}
obj.number = gr.number;
obj.short = gr.short_description;
var res = JSON.parse(text);
for(var i=0;i<res.results.length;i++){
if( res.results[i].status =="fail"){
obj.textValue = res.results[i].value);
arr.push(obj);
}
}
for(var i=0;i<arr.length;i++){
gs.print(arr[i].number+"-"+arr[i].short +"-"+arr[i].textValue);
}
}
Output (wrong):
INC123 - Demo1 - Test1
INC123 - Demo1 - Test1
Expected Output:
INC123 - Demo1 - Test1
INC123 - Demo1 - Test2
Thanks!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā11-19-2022 09:32 PM
Make below changes:
obj.number = gr.number.toString();
obj.short = gr.short_description.toString();
Also if( res.results[i].status =="fail") This if condition only pushes value to array if status is fail and Test2 has status as pass so it is not pushing value in array. You need to remove this if condition
Raghav
MVP 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā11-19-2022 11:15 PM - edited ā11-19-2022 11:17 PM
var text= {"results": [{"status": "fail","value":"Test1"},{"status": "fail","value":"Test2"}]}
Output (wrong):
INC123 - Demo1 - Test1
INC123 - Demo1 - Test1
Expected Output:
INC123 - Demo1 - Test1
INC123 - Demo1 - Test2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā11-20-2022 06:08 AM
Try below script:
var gr= new GlideRecord('incident');
gr.addQuery('sys_id','c2b3b1e2db3f9090bf6c3762ba9619a6');
gr.query();
while(gr.next()){
var arr =[];
var obj={};
var i;
var text= {"results": [{"status": "fail","value":"Test1"},{"status": "fail","value":"Test2"}]}
var res = JSON.parse(JSON.stringify(text));
for(i=0;i<res.results.length;i++){
if( res.results[i].status =="fail")
{
var obj={};
obj.textValue = res.results[i].value+" ";
obj.number = gr.number;
obj.shortDesc = gr.short_description;
arr.push(obj);
}
}
for(var i=0;i<arr.length;i++){
gs.print(arr[i].number+"-"+arr[i].shortDesc +"-"+arr[i].textValue);
}
}
Please mark the answer correct/helpful accordingly.
Raghav
MVP 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā11-19-2022 11:45 PM - edited ā11-19-2022 11:46 PM
Hi @Bhavikanth Redd ,
I don't know what's your exact requirement and basis on your output I played with your code and made some corrections and achieved the Output below code you can use to get the same output.
var gr= new GlideRecord('incident');
gr.addQuery('sys_id','c2b3b1e2db3f9090bf6c3762ba9619a6');
gr.query();
if(gr.next()){
var arr =[];
var obj={};
var text= {"results": [{"status": "fail","value":"Test1"},{"status": "pass","value":"Test2"}]}
obj.number = gr.number;
obj.shortdesc = gr.short_description;
//var res = JSON.parse(text);
}
for(var i=0;i<=text.results.length;i++)
{
if(text.results[i].status =="fail")
{
obj.textValue = text.results[i].value;
//arr.push(obj);
gs.print(obj.number+"-"+obj.shortdesc +"-"+obj.textValue);
}
else if(text.results[i].status =="pass")
{
obj.textValue = text.results[i].value;
//arr.push(obj);
gs.print(obj.number+"-"+obj.shortdesc +"-"+obj.textValue);
}
}
I hope this helps
Please mark my answer correct if this helps you
Thanks
Mohit