我想知道是否有任何方法可以通过使用Jolt转换将JSON属性值连接到现有属性名来重命名该字段.
假设我们这里有input个:
{
"auth_id": "0000-0000-0000",
"read_time": "2022-01-10T00:00:00.0",
"src_name": "REQ-A001",
"reading_a": "150.18",
"reading_b": "12.10",
"reading_c": "3.00",
"note": 1
}
我期望的是在所有现有字段名之前连接auth_id
和read_time
的字段值,并使用冒号(:
)作为分隔符,结果将变为:
Expected:个
{
"0000-0000-0000:2022-01-10T00:00:00.0:auth_id": "0000-0000-0000-0000-0000",
"0000-0000-0000:2022-01-10T00:00:00.0:read_time": "2022-01-10T00:00:00.0",
"0000-0000-0000:2022-01-10T00:00:00.0:src_name": "REQ-A001",
"0000-0000-0000:2022-01-10T00:00:00.0:reading_a": "150.18",
"0000-0000-0000:2022-01-10T00:00:00.0:reading_b": "12.10",
"0000-0000-0000:2022-01-10T00:00:00.0:reading_c": "3.00",
"0000-0000-0000:2022-01-10T00:00:00.0:note": 1
}
到目前为止,我已经提到
- 连接字段值时为Khusan Sharipov's question
- DSC's digest of JOLT documentation,以澄清运营商是如何开展工作的
打出JOLT spec分:
[
{
"operation": "modify-default-beta",
"spec": {
// concatenate field value auth_id and read_time, while using ":" as separator
"ukey": "=concat(@(1,auth_id),':',@(1,read_time))"
}
},
{
"operation": "shift",
"spec": {
"*": {
// concatenate field values before field name
"@": "@(2,ukey):&"
}
}
}
]
但我得到了这样的输出:
{
"0000-0000-0000:2022-01-10T00:00:00.0": {
":auth_id": "0000-0000-0000",
":read_time": "2022-01-10T00:00:00.0",
":src_name": "REQ-A001",
":reading_a": "150.18",
":reading_b": "12.10",
":reading_c": "3.00",
":note": 1
}
}
我希望在Nifi的JoltTransformJSON处理器中使用Jolt规范.
任何帮助或指导都是非常感谢的!