首页 > 解决方案 > 如何使用 Jolt 组合两个数组来创建键值对?

问题描述

我已经创建了一个规范来将我的 JSON 转换为:

{
  "rows" : [ {
    "row" : [ "row1", "row2", "row3" ],
    "header" : [ "header1", "header2", "header3" ]
  }, {
    "row" : [ "row4", "row5", "row6" ],
    "header" : [ "header1", "header2", "header3" ]
  } ]
}

我正在努力将其转换为键值对,我想要的输出是:

{
"header1" : "row1",
"header2" : "row2",
"header3" : "row3",
"header4" : "row4",
"header5" : "row5",
"header6" : "row6"
}

使用 Jolt 可以做到这一点吗?

标签: apache-nifijolt

解决方案


您的输入中是否存在复制/粘贴错误?根据您想要的输出判断,第二个对象的header数组应该是["header4", "header5", "header6"]. 如果是这样的话,这个规范应该可以工作:

[
  {
    "operation": "shift",
    "spec": {
      "rows": {
        "*": {
          "header": {
            "*": {
              "*": {
                "@(3,row[#2])": "&"
              }
            }
          }
        }
      }
    }
  }
]

推荐阅读