首页 > 解决方案 > 在nifi jolt中将对应于数组的空值转换为空数组

问题描述

我想在 NIFI 中使用 Jolt 处理器实现以下 JSON 转换通过关注值字段,在 json 的第一个输入(id 900551)中,值填充如下

输入 JSON

{
    "id": 900551,
    "internal_name": [],
    "values": [
        {
            "id": 1430156,
            "form_field_id": 900551,
            "pos": 0,
            "weight": null,
            "category": null,
            "created_at": "2020-10-15 12:55:02",
            "updated_at": "2020-11-27 10:45:09",
            "deleted_at": null,
            "settings": {
                "image": "myimage.png"
                "fix": false,
                "bold": false,
                "exclusive": false
            },
            "internal_value": "494699DV7271000,6343060SX0W1000,619740BWR0W1000",
            "css_class": null,
            "value": "DIFFERENCE",
            "settings_lang": {},
            "value_html": ""
        }
    ]
}

在要解析的第二个输入 Json 文件上,值为 null。

{
    "id": 900552,
    "internal_name": [],
    "values": []
}

我想在我的转换中将空值转换为空数组

有没有办法使用现有的 Jolt 操作来做到这一点?

谢谢。

标签: jsonapache-nifijolt

解决方案


default操作是您正在寻找的:

Defaultr 遍历规范并询问“这是否存在于数据中?如果不存在,请添加它。”

在我们的例子中:

如果"values"key 的值为null,则改为放置空数组

这是规格:

[
  {
    "operation": "default",
    "spec": {
      "values": []
    }
  }
]

使用https://jolt-demo.appspot.com/测试


编辑:从评论中回答问题:

也许这种解决方法对您有用


推荐阅读