我有传入的 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 键组合起来形成一个新的键:值对,其中键是 signalName,值是值字段,"IU_BATT_ParkAssist":14.171869> 以及其他原始键、值对。
考虑到每行中的 signalName 字段都会动态变化,我如何在 Nifi 中实现这一点?
最佳答案
尝试使用以下规范:
[
{
"operation": "shift",
"spec": {
"@(1,value)": "@(2,signalName)",
"*": "&"
}
},
{
"operation": "remove",
"spec": {
"signalName": "",
"value": ""
}
}
]
在shift操作中,我们将signalName和value
结合起来。
在删除操作中,我们将从 json
数据中删除signalName 和 value
。
输出:
{
"IU_BATT_ParkAssist" : 14.171869,
"msgId" : 2268,
"epoch" : 1582322746,
"usec" : 376360,
"vlan" : "-1",
"msgName" : "EBS_Frame12",
"vin" : "000004",
"timestamp" : 1582322746376
}
关于apache-nifi - 在Nifi中修改JSON键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60349637/