cancel
Showing results for 
Search instead for 
Did you mean: 

Creating one more field in list of objects by using the fields in same objects

GBekkanti
New Contributor III

Hi Team,
I have the below input data :
[
{
ID:123
“Name”:“Tony”,
“Age”:24
},
{
ID:124
“Name”:“Sam”,
“Age”:36
},
{
ID:125
“Name”:“Glenn”,
“Age”:58
}]

I need to add one more field ‘halfAge’ to the above and output data should be like below:

[
{
ID:123
“Name”:“Tony”,
“Age”:24,
“halfAge”:12
},
{
ID:124
“Name”:“Sam”,
“Age”:36
“halfAge”:18
},
{
ID:125
“Name”:“Glenn”,
“Age”:58,
“halfAge”:29
}]

Can you please let me know the Expression language for this?

Thanks in Advance!

7 REPLIES 7

christwr
Contributor III

Use a mapper, pass existing fields through, and create a new field $halfAge = $Age / 2

image

GBekkanti
New Contributor III

Sorry for my wrong input structure. the below is the correct one. It is a list of objects rather than 3 single objects

{‘items’:[
{
‘ID’:123,
‘Name’:‘Tony’,
‘Age’:24
},
{
‘ID’:124,
‘Name’:‘Sam’,
‘Age’:36
},
{
‘ID’:125,
‘Name’:‘Glenn’,
‘Age’:58
}]}

and the view in mapper is like below:
mapperView

Can you please process now?

Since you’re manipulating an array, you’ll want to look into the “Mapping Root” feature of the Mapper. By pointing the Mapping Root at your array, the Transformations will be applied to the elements of the array instead of the top-level document. Otherwise, the Mapper configuration is the same as suggested by @christwr:

image

GBekkanti
New Contributor III

Thanks for your reply @tstack and @christwr,

I have one more array in input like below

‘genderArray’:[‘Male’,‘Female’,‘Male’]

Now, I need to add the corresponding values to the objects of items’ array by creating new ‘Gender’ field.

output should be like below:

{‘items’:[
{
‘ID’:123,
‘Name’:‘Tony’,
‘Age’:24,
‘Gender’:‘Male’
},
{
‘ID’:124,
‘Name’:‘Sam’,
‘Age’:36,
‘Gender’:‘Female’
},
{
‘ID’:125,
‘Name’:‘Glenn’,
‘Age’:58,
‘Gender’:‘Male’
}]}

Can you please let me know the process?