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
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;
Views
Replies
Total Likes