Mapper for nest array

I’m trying transform the data as below using mapper. Could someone please let me know how this can be done with mapper snap.
Input Schema:
[
department_Id: number,
details: [
{ firstname: string, lastname: string, id: number},
{ firstname: string, lastname: string, id: number}
]
]

Expected Output Schema:
[
department_Id: number,
details: [
{ name: string = firstname+ " "+ lastname, id: number},
{ name: string = firstname+ " "+ lastname, id: number}
]
]

I’d recommend using the Mapping Root property in the Mapper snap. You can set that to be $.details[*] and that will allow you to transform each element of the details array.

Take a look at this post for another example and feel free to follow up with other questions.

It is not working for me.

test_2019_06_20.slp (4.4 KB) here is the pipeline I’m using to test it.

Hi Pavan,


test123_2019_06_20.slp (5.1 KB)

Hi Ajay,

it is not working as expected.
Input Json:
[
{department_Id: 1,
details: [
{ firstname: “a”, lastname: “b”, id: 1},
{ firstname: “c”, lastname: “d”, id: 2}
]
},
{department_Id: 2,
details: [
{ firstname: “e”, lastname: “f”, id: 3},
{ firstname: “g”, lastname: “h”, id: 4}
]
}
]

Expected Output Json:
[
{department_Id: 1,
users: [
{ name: “a b”, id: 1},
{ name: “c d”, id: 2}
]
},
{department_Id: 2,
users: [
{ name: “e f”, id: 3},
{ name: “g h”, id: 4}
]
}
]

Think this does what you’re looking for.

image

I used the first mapper to re-map the entries in the details array and then the second mapper to rename the details property to users.

Here is what I was mentioning about using the Mapping Root. This is very helpful for working with nested arrays.

Here is the complete example for you to try out. Good luck with your work.

make-users_2019_06_20.slp (5.5 KB)

Thanks. It is working as expected

1 Like