以下输入和预期输出所需的震动规格

问题描述

我需要根据data是否存在,将idExists列表分为两个单独的idNotExistsid列表。

有人可以通过Jolt Specification帮助我实现以下结果吗?

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

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

我尝试了以下规格,但无法正常工作

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

解决方法

我对您的规格进行了一些修改,添加了*,因为选择器中没有此内容。

将转移条件修改为NotExist,最后仅将名称转移到IdNotExists数组。

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