Parsing JSON Objects

JJG
Kilo Guru

 I have an outbound REST message that returns a JSON response.

Outbound REST message:

var getAccount = new sn_ws.RESTMessageV2('TestMessage', 'Accounts');
getAccount.setStringParameterNoEscape("authorization", accessToken);

var response = getAccount.execute();
var responseBody = response.getBody();


gs.info("responseBody : " + responseBody);

 

Here is responseBody of the outbound REST message:

{
   "@odata.context":"this is a test",
   "value":[
   {
   "test_value_1":"test1",
   "test_value_2":"test2"
   },
   {
   "test_value_1":"test3",
   "test_value_2":"test4"
   },
   {
   "test_value_1":"test5",
   "test_value_2":"test6"
   }

   ]
}

 

I need to parse this JSON response and get test_value_1 and test_value_2 for each object. How can I do this? I am thinking a for loop of some kind, but I cant figure out how to configure it.

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@JJG 

Considering you are receiving valid JSON response here is the script

Script:

var json = '{"@odata.context":"this is a test","value":[{"test_value_1":"test1","test_value_2":"test2"},{"test_value_1":"test3","test_value_2":"test4"},{"test_value_1":"test5","test_value_2":"test6"}]}';

var parser = JSON.parse(json);

var testValue1Arr = [];
var testValue2Arr = [];

for(var i=0;i<parser.value.length;i++){
	testValue1Arr.push(parser.value[i].test_value_1+'');
	testValue2Arr.push(parser.value[i].test_value_2+'');
}

gs.info("Test value1 array->" + testValue1Arr.toString());
gs.info("Test value2 array->" + testValue2Arr.toString());

Output:

Regards
Ankur

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

View solution in original post

5 REPLIES 5

Thank you, worked like a charm!

I think the parser was the piece I was missing:

var parser = JSON.parse(json);