json 如何从JOLT中的数组中获取值,将它们放入对象值的数组中

2ledvvac  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(146)

用于输入

{
  "field1": {
    "array1": [
      "a",
      "b"
    ],
    "array2": [
      "c",
      "d"
    ]
  }
}

我想要输出:

{
  "objectArray": [
    {
      "role": "to",
      "id": "a"
    },
    {
      "role": "to",
      "id": "b"
    },
    {
      "role": "to",
      "id": "c"
    },
    {
      "role": "to",
      "id": "d"
    }
  ]
}

我目前正在尝试:

[
  {
    "operation": "shift",
    "spec": {
      "field1": {
        "array1": {
          "#to": "objectArray[].role",
          "@": "objectArray[].id"
        },
        "array2": {
          "#to": "objectArray[].role",
          "@": "objectArray[].id"
        }
      }
    }
  }
]

然而,这似乎将角色和id分离到它们自己的单独对象中,在第一个对象之后。

nbnkbykc

nbnkbykc1#

您可以使用这两步shift转换规范。

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "*": "o[].id"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "*": "objectArray[&1].&",
          "#to": "objectArray[&1].role"
        }
      }
    }
  }
]

在第一步中为所有id获取和数组,然后在第二步中添加任意选择的键值对,同时重命名目标数组

相关问题