问题描述
在这里,我尝试将2个子数组中的元素合并到其父元素中,然后将另一个元素离开,然后将第二个数组上移两个级别。
是否可以根据条件更改值,如下面的输入所示, party.party.sno =“ 1”,可以将此更新为party..sno ='Y'
输入:
{
"Parties": [
{
"party": {
"partyId": "100005767","sno": 1,"fn": "Th1mas","ln": "Edison","emails": [
{
"emailAddress": "jkjk@ui.com"
}
],"addresses": [
{
"zip": ""
}
],"shealth": [
{
"stcd": "TN","lno": "1"
}
]
},"seq": {
"typeCd": "1"
}
}
]
}
预期输出:
{
"person": {
"first_name": "Th1mas","middle_initial": "Edison","last_name": "","email_address": "jkjk@ui.com","pinCode": ""
},"shealth": {
"statecd": "ON"
},//this is the seq no from party.sno
"primary": "Y","typeCd": "1"
}
尝试这样的规范:
[
{
"operation": "shift","spec": {
"Parties": {
"*": {
"party": {
"emails": {
"*": {
"emailAddress": "[&1].email_address","@(2,fn)": "[&1].first_name",ln)": "[&1].last_name"
}
},"addresses": {
"*": {
"zip": "[&1].pinCode"
}
},"shealth": {
"*": {
"stcd": "[&1].statecd"
}
}
}
}
}
}
}
]
解决方法
此规范有效
"party": {
"sno": {
"1": {
"#Y": "primary"
}
},
尝试从当前级别应用条件,
[
{
"operation": "shift","spec": {
"Parties": {
"*": {
"party": {
"sno": {
"1": {
"#Y": "primary"
}
},"emails": {
"*": {
"emailAddress": "person.email_address","@(2,fn)": "person.first_name",ln)": "person.last_name"
}
},"addresses": {
"*": {
"zip": "person.pinCode"
}
},"shealth": {
"*": {
"stcd": "shealth.statecd"
}
}
},"seq": {
"typeCd": "typeCd"
}
}
}
}
}
]