在 jolt 规范中使用相同的键在对象内部添加数组

Add array inside object with same key in jolt spec

我想通过 row_id 键在 investors 中使用相同的 row_id

移动建议数组

原版Json

{
  "investors": [
    {
      "row_id": 1,
      "name": "AAAA"
    },
    {
      "row_id": 2,
      "name": "BBBB"
    }
  ],
  "recommendations": [
    {
      "row_id": "1",
      "title": "ABC"
    },
    {
      "row_id": "2",
      "title": "CDE"
    }
  ]
}

我在 https://jolt-demo.appspot.com 尝试了很多规格但没有成功

已尝试规格...

[{
  "operation": "shift",
  "spec": {
    "investors": {
      "*": "investors[]"
    },
    "recommendations": {
      "@": "recommendations[]"
    }
  }
}]

想要Json

{
  "investors": [
    {
      "row_id": 1,
      "name": "AAAA",
      "recommendations":[{
          "row_id": "1",
          "title": "ABC"   
      }]
    },
    {
      "row_id": 2,
      "name": "BBBB",
      "recommendations":[{
          "row_id": "2",
          "title": "CDE"   
      }]
    }
  ]
}

这可以分两个阶段完成

第一个班次根据 row_id.

对所有内容进行分组

(我建议运行自己的第一个班次看看输出是什么)

第二班使用该分组输出并格式化结果。

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "row_id": {
            "*": {
              "@2": "&.&4"
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "investors": "investors.[#2]",
        "recommendations": "investors.[#2].recommendations[]"
      }
    }
  }
]