使用Nifi中的颠簸变换规范从Json数组中删除Json元素(如果某些属性为空)

时间:2019-03-12 04:55:10

标签: json apache-nifi jolt

我有一个JSON负载:

{  
   "fields":[  
      {  
         "title":"Priority",
         "value":"low",
         "short":"true"
      },
      {  
         "title":"Priority",
         "value":"medium",
         "short":"true"
      },
      {  
         "title":"Priority",
         "value":"high",
         "short":"true"
      },
      {  
         "title":"Priority",
         "value":"blocker",
         "short":"true"
      },
      {  
         "title":"",
         "value":"",
         "short":"true"
      },
      {  
         "title":"",
         "value":"",
         "short":"true"
      }
   ]
}

如果属性titlevalue为空,我想删除数组元素。我正在使用Jolt变换处理器。我需要的o / p

{  
   "fields":[  
      {  
         "title":"Priority",
         "value":"low",
         "short":"true"
      },
      {  
         "title":"Priority",
         "value":"medium",
         "short":"true"
      },
      {  
         "title":"Priority",
         "value":"high",
         "short":"true"
      },
      {  
         "title":"Priority",
         "value":"blocker",
         "short":"true"
      }
   ]
}

任何人都可以参考的地方,我可以学习如何编写规范,将不胜感激。我已经介绍了https://jolt-demo.appspot.com/#inception

1 个答案:

答案 0 :(得分:2)

尝试先通过title删除节点,然后再通过value删除节点:

[
  {
    "operation": "shift",
    "spec": {
      "fields": {
        "*": {
          "title": {
            "": null,
            "*": {
              "@2": "fields[]"
            }
          }
        }
      }
    }
  }, {
    "operation": "shift",
    "spec": {
      "fields": {
        "*": {
          "value": {
            "": null,
            "*": {
              "@2": "fields[]"
            }
          }
        }
      }
    }
  }
]

另请参阅: