cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Length in using expression

Sahil
Contributor

Hi,
I have a scenario where I need to filter out json based on length of a particular element.
so in Source if json is like this:-
[
{
โ€œSaleDatasโ€: {
โ€œDataIdโ€: โ€œโ€,
โ€œAmazonDataIdโ€: โ€œSale.purchase_4โ€,
โ€œAmazonDataNameโ€: โ€œโ€,
โ€œNameโ€: โ€œSale.purchase_4โ€,
โ€œDataTypeโ€: โ€œโ€,
โ€œValueโ€: โ€œWindows 11 Proโ€,
โ€œAmazonDataIdfโ€: โ€œโ€
}
},
{
โ€œSaleDatasโ€: {
โ€œDataIdโ€: โ€œโ€,
โ€œAmazonDataIdโ€: โ€œ2036โ€,
โ€œAmazonDataNameโ€: โ€œโ€,
โ€œNameโ€: โ€œcolour_nameโ€,
โ€œDataTypeโ€: โ€œโ€,
โ€œValueโ€: โ€œPlatinumโ€,
โ€œAmazonDataIdfโ€: โ€œโ€
}
}
]

in target I need only :-
[
{
โ€œSaleDatasโ€: {
โ€œDataIdโ€: โ€œโ€,
โ€œAmazonDataIdโ€: โ€œ2036โ€,
โ€œAmazonDataNameโ€: โ€œโ€,
โ€œNameโ€: โ€œsupplier_colour_nameโ€,
โ€œDataTypeโ€: โ€œโ€,
โ€œValueโ€: โ€œPlatinumโ€,
โ€œAmazonDataIdfโ€: โ€œโ€
}
}
]

I need a filter snaps expession either using length or numeric of โ€œAmazonDataIdโ€. i.e if AmazonDataId.length==โ€˜4โ€™ then only pass through filter snaps.

1 REPLY 1

viktor_n
Contributor II

Hi @Sahil,

Are you looking for something like this.

Expression for Mapper:
Array.filter(el => el.SaleDates.AmazonDataId.length == 4)

Expression for Filter:
$SaleDates.AmazonDataId.length == 4

Regards,
Viktor