json 以下输入和预期输出需要Jolt规范

relj7zay  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(137)

我需要根据id是否存在,将data列表拆分为两个单独的idExistsidNotExists列表。
有人能帮助我使用Jolt规范来实现以下结果吗?
输入:

{
  "data": [
    {
      "name": "a",
      "id": "100"
    },
    {
      "name": "b",
      "id": "101"
    },
    {
      "name": "c"
    }
  ]
}

预期输出:

{
  "IdExists": [
    {
      "name": "a",
      "id": "100"
    },
    {
      "name": "b",
      "id": "101"
    }
  ],
  "IdNotExists": [
    {
      "name": "c"
    }
  ]
}

我已经尝试了下面的规格,但它不是预期的工作

[
  {
    "operation": "modify-default-beta",
    "spec": {
      "data": {
        "": {
          "id": "NotExist"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "data": {
        "": {
          "id": {
            "10*": {
              "@2": "IdExists[]"
            },
            "*": {
              "@2": "IdNotExists[]"
            }
          }
        }
      }
    }
  }
]
hjqgdpho

hjqgdpho1#

我对你的规格做了一些修改,添加了***,因为它在选择器中丢失了。
将移位条件修改为
NotExist**,最后仅将名称移位到***IdNotExists***数组。

[
  {
    "operation": "modify-default-beta",
    "spec": {
      "data": {
        "*": {
          "id": "NotExist"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "data": {
        "*": {
          "id": {
            "NotExist": {
              "@(2,name)": "IdNotExists[].name"
            },
            "*": {
              "@2": "IdExists[]"
            }
          }
        }
      }
    }
  }
]

相关问题