json property extract

Khanna Ji
Tera Guru

Hi Friends - Happy New Year to you all.

I have a custom app and there is a property as shown below. How can I fetch this property values which are in Nested Json format? I tried JSON.parse(property) but its not working in scoped app.

{
"field1": "value1",
"field2": "value1"
},
{
"field1": "value2",
"field2": "value2"
}

 

var msg = gs.getProperty('myproperty');
var parsed = JSON.parse(msg);
for (var i = 0; i < parsed.length; i++){
gs.print(parsed[i].field1);}
1 ACCEPTED SOLUTION

Hi,

the property is already string so don't use JSON.stringify()

I used as I was testing in background script

use this

var prop = gs.getProperty('sn_hr_core.myprop');
var parsed = JSON.parse(prop);
gs.info(parsed.length);
for (var i = 0; i < parsed.length; i++){
	gs.info(parsed[i].field1);
}

Regards
Ankur

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

View solution in original post

13 REPLIES 13

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

is the property value returning array of json objects

you should declare the property like this

[{
"field1": "value1",
"field2": "value1"
},
{
"field1": "value2",
"field2": "value2"
}]

Sample Script:

var arr = [{
"field1": "value1",
"field2": "value1"
},
{
"field1": "value2",
"field2": "value2"
}];

var msg = JSON.stringify(arr);
var parsed = JSON.parse(msg);
for (var i = 0; i < parsed.length; i++){
gs.info(parsed[i].field1);}

Output:

find_real_file.png

Regards
Ankur

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

Its working in BS when I add as you shared but not working like this

 var arr = gs.getProperty('myprop');

var msg = JSON.stringify(arr);
var parsed = JSON.parse(msg);
for (var i = 0; i < parsed.length; i++){
gs.info(parsed[i].field1);}

Hi,

so at which place it is not working.

if it is working in background script then it should work fine at other place

are you in same scope or some scope issue is there?

what error you get or what logs you get when you use gs.info() in the actual script?

Regards
Ankur

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

Getting below as an output when I run it in BS. Also when I printed length it gives me 95 which is not correct. I have just two elements in the property.
gs.info(parsed.length);


*** Script: undefined
*** Script: undefined
*** Script: undefined
*** Script: undefined
*** Script: undefined
*** Script: undefined
*** Script: undefined
*** Script: undefined
*** Script: undefined
*** Script: undefined
*** Script: undefined