Arrays 将元素从子数组转移到父数组

Arrays 将元素从子数组转移到父数组,arrays,jolt,Arrays,Jolt,在这里,我尝试将两个子数组中的元素合并到其父数组中,并保留另一个子数组,然后将第二个数组上移到两个级别 是否有一种方法可以根据条件更改值,如下面的输入, parties.party.sno=“1”,是否可以将其更新为parties..sno='Y' 输入: { "Parties": [ { "party": { "partyId": "100005767", &

在这里,我尝试将两个子数组中的元素合并到其父数组中,并保留另一个子数组,然后将第二个数组上移到两个级别

是否有一种方法可以根据条件更改值,如下面的输入, parties.party.sno=“1”,是否可以将其更新为parties..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",
                "@(2,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",
                "@(2,ln)": "person.last_name"
              }
            },
            "addresses": {
              "*": {
                "zip": "person.pinCode"
              }
            },
            "shealth": {
              "*": {
                "stcd": "shealth.statecd"
              }
            }
          },
          "seq": {
            "typeCd": "typeCd"
          }
        }
      }
    }
    }
]

非常感谢。这很有效!。如果向输入中再添加一个数组,则输出将显示单个数组中的所有值,而不是单个数组。。我的意思是像这样的“first_name”:[“Th1mas”,“Thomas”]而不是first_name:“Th1mas”,在第一个数组中,firstname:“Thomas”在第二个数组中。我需要为规范添加什么吗更清楚一点,它像这样{“person”:{“first_name”:[“Th1mas”,“Th1mas”}}而不是{“person”:{“first_name”:“Th1mas”},perspn:{”名字“:“Th1mas”}”