【问题标题】:Modifying JSON Key Value Pairs In Nifi在 Nifi 中修改 JSON 键值对
【发布时间】:2020-02-22 06:30:57
【问题描述】:

我有传入的 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 对,其中 key 是 signalName,value 是 value 字段,"IU_BATT_ParkAssist":14.171869 以及其他原始键、值对。

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

【问题讨论】:

    标签: apache-nifi jolt


    【解决方案1】:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      相关资源
      最近更新 更多