cancel
Showing results for 
Search instead for 
Did you mean: 

Removing a column from JSON array

matt_bostrom
New Contributor II

Hello. say i have the following JSON:

e1b2db29411d10c43210ac3f1854102605a2c9f1_1_690x238

how can i remove one of the attributes / columns? Let’s say in the top left from the image above I want to remove the OwnerEmail value from that array… how could i do that in snaplogic? i’ve tried remapping but that breaks the grouping.

9 REPLIES 9

suehocking
New Contributor

this isnt working for me!!
Could not compile expression: $group[].matchfield (Reason: Encountered extraneous input ‘[’ at line 1:6; expecting={, ‘||’, ‘&&’, ‘^’, ‘==’, ‘!=’, ‘>’, ‘<’, ‘>=’, ‘<=’, ‘+’, ‘-’, '', ‘/’, ‘%’, ‘?’, ‘instanceof’, ‘in’, ‘.’}; Resolution: Please check expression syntax)

Make sure the “Target Path” column in the mapper is cleared. Otherwise, the mapper will treat the first column as an expression, which is what it looks like is happening here. (When the Target Path is clear, the first column is treated as a JSON-Path that specifies what should be deleted in the input document).

How would you do this conditionally? Meaning, if the incoming value is NULL, remove the property?

viktor_n
Contributor II

Hi @acesario,

There is an expression. You can remove all field that are null or only by specific fields.
For this you must use Mapper and you need to have checked Pass Through checkbox and also target path need to be empty.

$group...[?(value == null && key == "fieldName")]

$group: Is an array and if you remove the “group” and let stay only “$” then it will work again but it will check through whole document.

value: We specify what value we want to remove. In this situation is null.

key: If we have to specify name of field that we want to remove, then we set key in the conditions. If we only need to check by value then remove the key. Ex: $group...[?(value == null)]

image

Regards,
Viktor Nedanovski

acesario
Contributor II

Very cool… thank you!