从子数组到父级的震荡传递元素

问题描述

在这里,我尝试将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"
          }
        }
      }
    }
    }
]