如何解决Jolt - 合并两个数组并重命名字段
我在将对象写入数组时遇到问题。基本上我想合并数组并重命名字段,同时单独保留对象。
我的输入 json 如下所示:
{
"board":[
{
"role":"Head of board","id":"111","name":"John Snow"
}
],"leaders":[
{
"role":"Accounting leader","id":"222","name":"Amanda Johns"
},{
"role":"HR leader","id":"333","name":"Frank Smith"
}
]
}
这是我的规格:(我知道括号中的值可能不正确)
[
{
"operation":"shift","spec":{
"board":{
"*":{
"id":"employees.bosses[#2].emp_num","role":"employees.bosses[#2].position","name":"employees.bosses[#2].name"
}
},"leaders":{
"*":{
"id":"employees.bosses[#2].emp_num","name":"employees.bosses[#2].name"
}
}
}
}
]
这是我的输出:
{
"employees": {
"bosses": [ {
"emp_num": ["111","222"],"position": ["Head of board","Accounting leader"],"name": ["John Snow","Amanda Johns"]
},{
"emp_num": "333","position": "HR leader","name": "Frank Smith"
} ]
}
}
虽然我希望输出看起来像这样:
{
"employees": {
"bosses": [ {
"emp_num": "111","position": "Head of board","name": "John Snow"
},{
"emp_num": "222","position": "Accounting leader","name": "Amanda Johns"
},"name": "Frank Smith"
} ]
}
}
我在理解该做什么以及 [#n] 的工作方式方面遇到了很大的麻烦,我真的很感激能帮助我修复我的规范并解释为什么这样做/不起作用!
解决方法
组合时需要区分数组的索引。为此,请为第一个数组添加一个后缀字母或单词(这里我为 a
选择了 a.[&1]
),同时在第一个 shift 操作中根据需要重命名所有键,然后在连续的 shift 操作中应用新的扩展 employees.bosses
,例如
[
{
"operation": "shift","spec": {
"board": {
"*": {
"id": "a.[&1].emp_num","role": "a.[&1].position","name": "a.[&1].name"
}
},"leaders": {
"*": {
"id": "&1.emp_num","role": "&1.position","name": "&1.name"
}
}
}
},{
"operation": "shift","spec": {
"*": "employees.bosses"
}
}
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。