how to extract data from response body.

niveditakumari
Mega Sage

Hello,

How to extract data from response body and set that value in table.

ex - I am calling one API and with that I am getting some records and that are stored in response body. Now I want to extract all the values from response body and set that value in one table.

I am trying to achieve this by schedule job.

Can anyone please help me that how I can extract that values from response body and set that value in our tables.

 

Regards,

Nivedita 

1 ACCEPTED SOLUTION

Hi Nivedita,

the script shared earlier should work; ensure you give correct field names for the 6 fields

try {
var r = new sn_ws.RESTMessageV2('Get Data', 'Default GET');

//override authentication profile
authentication_type ='basic';
r.setAuthenticationProfile(authentication_type, 'efea940d1b408010acf5fc88cc4bcbf7');

var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();

gs.print(responseBody);
gs.log("response body is" + responseBody);
var obj = JSON.parse(responseBody);

for(var i = 0; i<obj.plannedEvents.length; i++) {

var gr = new GlideRecord('u_outage');
gr.initialize();
gr.u_rollbackplan = obj.plannedEvents[i].rollbackPlan;
gr.u_plannedeventstartdate = obj.plannedEvents[i].plannedEventStartDate;
gr.u_closurecode = obj.plannedEvents[i].closureCode;
gr.u_description = obj.plannedEvents[i].description;
gr.u_plannedeventenddate = obj.plannedEvents[i].plannedEventEndDate;
gr.u_ticketid = obj.plannedEvents[i].ticketId;
gr.u_correlationid = obj.plannedEvents[i].correlationId;
gr.u_impact = obj.plannedEvents[i].impact;
gr.u_executionowner = obj.plannedEvents[i].executionOwner;
gr.u_maintenancetype = obj.plannedEvents[i].maintenanceType;
gr.u_sitelocation= obj.plannedEvents[i].maintenanceType;
gr.u_expecteddowntime= obj.plannedEvents[i].expectedDowntime;
gr.u_activitystatus= obj.plannedEvents[i].activityStatus;

var servicesArray = [];

for(var j = 0; j<obj.plannedEvents[i].services.length; j++) {
var gr = new GlideRecord('services_table');
gr.initialize();
gr.u_serviceidentifier= obj.plannedEvents[i].services[j].serviceIdentifier;
gr.u_protectionstatus= obj.plannedEvents[i].services[j].protectionStatus;
gr.u_servicetype= obj.plannedEvents[i].services[j].serviceType;
gr.u_servicealias= obj.plannedEvents[i].services[j].serviceAlias;
gr.u_customerlename= obj.plannedEvents[i].services[j].customerLeName;
gr.u_cuid= obj.plannedEvents[i].services[j].cuid;
var sysId = gr.insert();    
servicesArray.push(sysId.toString());
}

gr.u_services = servicesArray.toString();
gr.insert();

}
gs.log("table data is" + responseBody);
}


catch(ex) {
gs.info('Exception is: ' + ex);
}
Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur

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

View solution in original post

55 REPLIES 55

Hi Nivedita,

Can you share the json string here so that I can help in parsing that?

Also what values from the json string is required so that you can insert those into table?

Regards

Ankur

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

Hello Ankur,

I have written code in background script and did testing :

Please find the below log statements that i got : 

find_real_file.png

Hi Nivedita,

Can you paste the json string in the comment here?

Regards

Ankur

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

You mean to say the code which i got in log statement.

 

Regards,

Nivedita

Hello Ankur,

You are refering to below code :

{"status":"200","message":"Success","totalCount":1,"startIndex":0,"endIndex":0,"plannedEvents":[{"closureCode":null,"rollbackPlan":"Test","plannedEventStartDate":"2018-05-24 07:06:30","siteLocation":"Test","ticketId":"CHGP0054939","description":"Test Ticket . Please dont close it.","maintenanceType":"Normal","impact":"Test","correlationId":null,"executionOwner":"Tata Backbone Network","plannedEventEndDate":"2018-05-25 07:06:56","services":[{"serviceIdentifier":"TEST1-CN-862128916674-G-MPLS_duplicate","protectionStatus":"Protected","serviceType":"GVPN - MPLS","serviceAlias":"","customerLeName":"TATA Communications Test1","cuid":"1"},{"serviceIdentifier":"TEST1-GB-441926640000-IP-DIA-40","protectionStatus":"Protecting","serviceType":"IP - DIA","serviceAlias":"","customerLeName":"TATA Communications Test1","cuid":"1"},{"serviceIdentifier":"TEST1-GB-040237-I-TPAAS-02","protectionStatus":"Unprotected","serviceType":"Infrastructure - TPaaS","serviceAlias":"","customerLeName":"TATA Communications Test1","cuid":"1"},{"serviceIdentifier":"TEST1-GB-040237-G-MPLS-01","protectionStatus":"Protection failure","serviceType":"GVPN - MPLS","serviceAlias":"","customerLeName":"TATA Communications Test1","cuid":"1"}],"expectedDowntime":"00:02:45","activityStatus":"Scheduled"}]}

 

Regards,

Nivedita