Convert string to JSON and fetch its variable

Deepika Mishra
Mega Guru

On doing a GlideAjax I am getting a String written in JSON format.

var str ="var data = {"value1": "abc","value2": "def","value3": "ghi"};";

Now from this string I want to fetch individual parameters from this data variable and get output of individual.

Value1 =  abc
Value2 = def
Value3 = ghi

Please let me know how from the output string which has a variable declaration of var data, I can get my individual output.

 

1 ACCEPTED SOLUTION

var str='var data = {"value":"abc","value2":"def","value3":"ghi"};';

var start=str.indexOf('{');
var end=str.indexOf('}');
var str=str.substring(start,end+1)

gs.info(str)

var data=JSON.parse(str); // Now you will have a valid JSON String

 

//Now access them as below

gs.info(data.value);// Now data.value1 will hold "abc";
gs.info(data.value2);// Now data.value2 will hold "def";
gs.info(data.value3);// Now data.value2 will hold "ghi";

 

Its my bad i additionaly added the parsing statement twice;

please try the above cod. its tested 

View solution in original post

22 REPLIES 22

Thankyou so much !!
It worked 🙂

Hi,

 

You can convert only ({"value1": "abc","value2": "def","value3": "ghi"}) to the JSON.

Not like given by you, So use the code like below:

 

 

var str ='var data = {"value1": "abc","value2": "def","value3": "ghi"};';
var js_data = str.split('= ');
var js_data1 = js_data[1].split(';');
gs.print(JSON.parse(js_data1[0]));

Hi Ankur. Instead of splitting. I used Substring ot extract the code

please check the code

Sourabh26
Giga Guru

Hi,

 

Try Below Code

var data = {
	"value1": "abc",
	"value2": "def",
	"value3": "ghi"
};

//convert string into object

var obj = JSON.parse(data);

//Now you can fetch the values of the above object by simply using dot notation.

gs.print(obj.value1); // abc

Please mark correct answer if it helps

Hi,

 

Can you please run your given code in the background script? 

Because the below statement will surely give you an error.

var obj = JSON.parse(data);