12-09-2022 04:22 AM
Below is the Input
[
{
“@id”: “2”,
“col”: [
{
“@id”: “2”,
“@transable”: “yes”,
“$”: “Replace1”
},
{
“@id”: “3”,
“@transable”: “no”,
“$”: “Replace2”
}
],
“group”: [
{
“A”: “A1”,
“B”: “B1”,
“C”: “C1”,
“D”: “D1”,
“E”: "E1 ",
“F”: “F1”,
“G”: “G1”,
“H”: “”,
“I”: “”
},
{
“A”: “A2”,
“B”: “B2”,
“C”: “C2”,
“D”: “D2”,
“E”: “”,
“F”: “F2”,
“G”: “G2”,
“H”: “”,
“I”: “”
}
]
}
]
expected Output :
[
{
"group": [
{
"A": "A1",
"B": "B1",
"C": "C1",
"D": "D1",
"E": "E1 ",
"F": "F1",
"G": "G1",
"H": "",
"I": ""
},
{
"A": "A2",
"B": "Replace1",
"C": "Replace2",
"D": "D2",
"E": "",
"F": "F2",
"G": "G2",
"H": "",
"I": ""
}
]
}
]
explanantion : @id refers to row number of the group and @id under col refers to the column number of the group where replacement needs to be done with the value of "$"
12-09-2022 04:42 AM
Hi @KTsnap,
I believe this expression will do the job:
$group.map((x,index)=>$['@id'] == index + 1 ? (x.mapValues((v,k)=> $col.find(e => e['@id']-1 == x.keys().indexOf(k)) != null ? $col.find(e => e['@id']-1 == x.keys().indexOf(k) ).get('$') : v)) : x)
It’s rather complex, so I would suggest you to do some testing.
Regards,
Bojan
12-11-2022 09:52 PM
Hi @bojanvelevski similarly if i have two array called row and group as shown below
I need to replace the the value of second array ie group array with values from first array ie row array
to elaborate->row id in first array (row array) is corresponding to first record in second array(group array) and colid in first array(row array) is corresponding to A, B, C,D,E,F,G,H,I in the second array(group array).Example:first record of second array(group array) with values corresponding to column B and C must be updated with value ($) corresponding to first array(row array) with row id 1 and col id is 2 &col id is 3but remaining column values like A,D,E,F…I values should remain as incoming input values
Expected output is as shown below
Please could u help telling how can we achieve this using mapper expression here
12-12-2022 03:58 AM
If my understanding is correct, this is the same situation, isn’t it ?
You just need to tweak the expression a little bit.
12-12-2022 04:11 AM
Hi @bojanvelevski yes but here id corresponding to row comes in an array so how can we change it accordingly?
i tried this way its not working pls could u help if am missing something or doing wrong pls
input.json (1.0 KB)
@bojanvelevski, @alchemiz please could u help 😔