在 Nifi 中修改 JSON 个键值对

Modifying JSON Key Value Pairs In Nifi

我收到了 JSON 行数据,例如,

{"signalName": "IU_BATT_ParkAssist", "msgId": 2268, "epoch": 1582322746, "usec": 376360, "vlan": "-1", "msgName": "EBS_Frame12", "vin": "000004", "value": 14.171869, "timestamp": 1582322746376}

我想修改输出以生成,

{"IU_BATT_ParkAssist":14.171869, "msgId": 2268, "epoch": 1582322746, "usec": 376360, "vlan": "-1", "msgName": "EBS_Frame12", "vin": "000004", "timestamp": 1582322746376}

signalName 和 value 键组合成一个新的 key:value 对,其中键是 signalName,值是值字段,"IU_BATT_ParkAssist":14.171869 以及其他原始键值对。

鉴于 signalName 字段将在每一行中动态变化,我如何在 Nifi 中实现这一点?

Try with below spec:

[
  {
    "operation": "shift",
    "spec": {
      "@(1,value)": "@(2,signalName)",
      "*": "&"
    }
  },
  {
    "operation": "remove",
    "spec": {
      "signalName": "",
      "value": ""
    }
  }
]

shift 操作中我们合并 signalName and value.

remove 操作中,我们从 json 数据中删除 signalName and value

Output:

{
  "IU_BATT_ParkAssist" : 14.171869,
  "msgId" : 2268,
  "epoch" : 1582322746,
  "usec" : 376360,
  "vlan" : "-1",
  "msgName" : "EBS_Frame12",
  "vin" : "000004",
  "timestamp" : 1582322746376
}