Forum Discussion

SriVinayaga's avatar
SriVinayaga
New Contributor II
7 years ago
Solved

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)