JSON Array transformation
Hi All,
I am in requirement to transform JSON Array Object to a simple JSON Object with values in the array as below. I have thought and nothing striking to my mind. Hence any help will be appreciated. Please let me know if this is first doable in Snaplogic.
Input:
[
{
“BrandData”: [
{
“Source”: “SF”,
“SourceBrand”: “COKE”,
“Brand”: “01”
},
{
“Source”: “SAP”,
“SourceBrand”: “11”,
“Brand”: “26”
},
{
“Source”: “AS400”,
“SourceBrand”: “12”,
“Brand”: “12”
}
]
}
]
Output:
{
BrandData:
{
“SF-COKE”: “01”,
“SAP-11”: “26”,
“AS400-12”: “12”,
}
}
Please note the objects withing BrandData after transformation is based on the values of “Source”+“-”+“SourceBrand” and the value is “Brand”. Each array value will have one value in the transformed output.
Please let me know how to proceed on this.
Thanks and regards,
Sri
You’re looking for the toObject() method on arrays. The method takes two callbacks, one to turn the array element into the key and one to turn the element into the value. I think the following will do what you want:
$BrandData.toObject(elem => elem.Source + "-" + elem.SourceBrand, elem => elem.Brand)
I’m also attaching an example pipeline with this expression.
ArrayToObject_2019_07_26.slp (3.9 KB)