Expand my Community achievements bar.

Ask our product team on how to best grow your experimentation and personalization strategies with Target during our AMA on May 6th!

Working with Json Arrays in a Profile Script

Avatar

Level 2

I am starting with Adobe Target and I would like to understand some weird things I see playing with the profile scripts.

I am creating and storing a simple list of objects containing. the objects contains just two attributes: one is an string and the other one is an integer.

When I try to get this back from the user parameter the first thing that I see is that the Json is not in a Json format anymore as it changes the ":" with "=", the other thing I see is that the integers has been converted into float.

An example of this would be:

Before storing the parameter: [ { "stringItem" : "item1", "intItem" : 12 },   "stringItem" : "item2", "intItem" : 24 }]

When I get the stored parameter: [ { "stringItem" = "item1", "intItem" = 12.0 },   "stringItem" = "item2", "intItem" = 24.0 }]

And after this I cannot longer work with the attibutes inside, actually I can't event do simple things as trying to get the type of that array element typeof(array[0])

Is there anyone that can explain me how to work with objects stored inside user parameters?

Thanks,

Lucio

1 Reply

Avatar

Level 1

I solved this by storing the entire object as a string and parsing it when fetching. There appears to be issues whenever you look inside and array or object that has been stored as is as a profile attribute, it silently fails and there is no debugging to find out what's going on. But if you store it as a string and convert back and forth it all seems to behave as expected.
So mine looked like:

var getData = user.get('scriptName');

var parseData = JSON.parse(getData);

//do stuff to parseData

var storeData = JSON.stringify(parseData);

return storeData;