【问题标题】:Jolt Transformation to move an attribute in each element of the arrayJolt Transformation 在数组的每个元素中移动一个属性
【发布时间】:2021-03-16 14:30:03
【问题描述】:

我的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].&"
        }
      }
    }
  }
]

这里非常感谢任何帮助。

【问题讨论】:

    标签: json transformation jolt


    【解决方案1】:

    可以使用这样的shift操作

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

    在哪里

    • & 符号(&)s 在结尾(显示为叶子)匹配 替换不需要重复名称的键

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      相关资源
      最近更新 更多