在震动规格中使用相同的键在对象内部添加数组

时间:2019-10-18 17:04:44

标签: jolt

我想通过具有相同row_id的投资者在row_id键内移动推荐数组

原始杰森

{
  "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[]"
    }
  }
}]

所需的杰森

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

1 个答案:

答案 0 :(得分:1)

这可以分两个阶段完成

第一班会根据row_id对所有内容进行分组。

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

第二次移位使用该分组的输出并格式化结果。

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