Jolt Transformation 在数组的每个元素中移动一个属性

Jolt Transformation to move an attribute in each element of the array

我的Json输入如下

{
  "ref": "22",
  "id": "177",
  "table": [
    {
      "zn": 1,
      "stfflbisart": 10
    },
    {
      "zn": 2,
      "stfflbisart": 50
    }
  ]
}

并且我希望 ref 字段包含在数组对象中存在的每个元素中

我想要的输出如下:

{
  "id": "177",
  "table": [
    {
      "zn": 1,
      "stfflbisart": 10,
      "ref": "22"
    },
    {
      "zn": 2,
      "stfflbisart": 50,
      "ref": "22"
    }
  ]
}

我尝试的 Jolt 规格没有成功。

[
  {
    "operation": "shift",
    "spec": {
      "ref": "ref",
      "table": {
        "*": {
          // simple match.  Put the value '4' in the output under the "Rating" field
          "*": "[&1].&"
        }
      }
    }
  }
]

非常感谢任何帮助。

可以使用这样的shift操作

[
  {
    "operation": "shift",
    "spec": {
      "id": "id",
      "table": {
        "*": {
          "*": "&2.[&1].&",
          "@(2,ref)": "&2.[&1].ref"
        }
      }
    }
  }
]

哪里

    末尾的
  • ampersand(&)s(显示为叶子)匹配 无需重复名称的键替换

  • 数组名称后跟点 (table.) 也可以替换为 另一个名称,例如 tab. 以重命名当前数组

  • 这些数组后跟.[&1](例如table.[&1]) 表示将这些键值对组合成 json 个对象,同时 将它们嵌套为数组的元素

  • "*"嵌套在"table": { "*": {之后表示的所有键 table 数组