使用 Jolt Transformer 对多个阵列进行移位操作时出现问题

问题描述 投票:0回答:1

示例输入:

`[
  {
    "elements": [
      {
        "shadow": {
          "h": 3,
          "v": 2,
          "blur": 1,
          "color": "#808080"
        }
      }
    ]
  }
]`

所需输出:

`[
  {
    "elements": [
      {
        "shadow": {
          "offsetX": 3,
          "offsetY": 2,
          "blur": 1,
          "color": "#808080"
        }
      }
    ]
  }
]`

尝试运行以下命令:

`[
  {
    "operation": "shift",
    "spec": {
      "elements": {
        "*": {
          "shadow": {
            "h": "elements[&1].shadow.offsetX",
            "v": "elements[&1].shadow.offsetY",
            "blur": "elements[&1].shadow.blur",
            "color": "elements[&1].shadow.color"
          }
        }
      }
    }
  }
]`

我要么能够成功转换“shadow”中的值,要么将“shadow”保留在“elements”数组中。两个事件没有同时发生。希望得到一些帮助!

arrays json jolt
1个回答
0
投票

您可以使用带有覆盖选项的修改规范(modify-overwrite-beta),例如

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "elements": {
          "*": {
            "shadow": {
              "offsetX": "=(@(1,h))",
              "offsetY": "=(@(1,v))",
              "blur": 1,
              "color": "#808080"
            }
          }
        }
      }
    }
  },
  { //get rid of the original attributes
    "operation": "remove",
    "spec": {
      "*": {
        "elements": {
          "*": {
            "shadow": {
              "h|v": ""
            }
          }
        }
      }
    }
  }
]
© www.soinside.com 2019 - 2024. All rights reserved.