首页 > 解决方案 > 通过 Nifi 更新 Json 字段

问题描述

我有一个来自输入端口的这样的 json:

{
"url": "blablabla",
"keyword": "foo"
}

然后我必须生成一个新的 json 来传递给 post call。新的 json 是这样的:

  {
     "requests": [
        {
            "source": "blablabla",
            "params": {
                "keywords": [
                    "something"
                ],
                "sub-field1": true
           }
        }
    ],
    "field1": "1",
    "field2": "2",
    "field3": false
}

其中数组关键字应替换为具有前一个 Json ("foo") 值的新数组。结果是:

   {
     "requests": [
        {
            "source": "blablabla",
            "params": {
                "keywords": [
                    "foo"
                ],
                "sub-field1": true
           }
        }
    ],
    "field1": "1",
    "field2": "2",
    "field3": false
}

然后我必须通过 REST API Post 调用一个函数。

问题是我不知道如何执行字段值的替换

标签: jsonapache-nifi

解决方案


尝试使用以下规范的 JoltTransformJSON:

[
  {
    "operation": "shift",
    "spec": {
      "url": "requests[0].source",
      "keyword": "requests[0].params.keywords[]",
      "#1": "requests[0].params.sub-field1"
    }
  },
  {
    "operation": "default",
    "spec": {
      "field1": "1",
      "field2": "2",
      "field3": false
    }
  }
]

推荐阅读