While working with the W3 dataLayer there have been many instances where a DTM user wants to create a data-element that is based on a array. Example- you have the following dataLayer and want to create a data element to store product name of first product in the listing 

var digitalData = {
    "listing":
        [
        {
            "productInfo":
            {
            "productName": "laptop", 
            "productId": "19381652"
            }
            
        },
        {
            "productInfo":
            {
            "productName": "tv", 
            "productId": "19381654"
            }
            
        }
        ]
    }

Hence there is a particular way in which we can represent path as an array in a JS object type for Data Elements. To be able to extract value from an array in JavaScript you would use arrayName[x] where x is the index of the value in the array. In DTM when you use a data element based on JS path then you will need to use the following if you want to extract a value from a JavaScript array : arrayName.x where x is the index of the value in the array.

Considering the above data layer, if you want to create a data element to extract productName value from a complex Json object using Array  you have to use a path like this - digitalData.listing.0.productInfo.productName

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy