转换 JSON 文件以将键添加到数组值
Transform JSON file to add keys to array values
我正在使用 Apache NiFi 并通过 TCP/IP 套接字从嵌入式微处理器接收一个 JSON 格式的文件:
{
"id": 123456,
"ip": "192.168.1.1",
"t":-12.9,
"T":-23.8,
"variables":[
"user1",
0,
-12.97,
23.87
]
}
并希望对其进行转换,以便添加变量的键,如下所示:
{
"id": 123456,
"ip": "192.168.1.1",
"t":-12.9,
"T":-23.8,
"variables":[
"username" : "user1",
"valid" : 0,
"temperature 1":-12.97,
"temperature 2":23.87
]
}
然后能够访问键值对,例如 variables.username。
我试过使用 JoltTransformJSON 但不知道如何正确编写规范(如果可以的话)!!我写了以下震动规范:
[
{
"operation": "shift",
"spec":{
"id": "id",
"ip": "ip",
"t": "t",
"T": "T",
"variables":{
"username": "",
"valid": "",
"temperature 1": "",
"temperature 2":“”
}
}
}
]
我也尝试过将 UpdateRecord 与 Record Reader/Writer 一起使用,但传递正确的模式会导致第一个变量出错,因为它无法将 "user1" 与初始 [=63] 中的键匹配=].
我已经设法按如下方式计算出 Jolt 规格:
[
{
"operation": "shift",
"spec":{
"id": "id",
"ip": "ip",
"t": "t",
"T": "T",
"variables":{
"0": "username",
"1": "valid",
"2": "temperature 1",
“3”:"temperature 2"
}
}
}
]
感谢 daggett 的贡献。
我正在使用 Apache NiFi 并通过 TCP/IP 套接字从嵌入式微处理器接收一个 JSON 格式的文件:
{ "id": 123456, "ip": "192.168.1.1", "t":-12.9, "T":-23.8, "variables":[ "user1", 0, -12.97, 23.87 ] }
并希望对其进行转换,以便添加变量的键,如下所示:
{ "id": 123456, "ip": "192.168.1.1", "t":-12.9, "T":-23.8, "variables":[ "username" : "user1", "valid" : 0, "temperature 1":-12.97, "temperature 2":23.87 ] }
然后能够访问键值对,例如 variables.username。
我试过使用 JoltTransformJSON 但不知道如何正确编写规范(如果可以的话)!!我写了以下震动规范:
[ { "operation": "shift", "spec":{ "id": "id", "ip": "ip", "t": "t", "T": "T", "variables":{ "username": "", "valid": "", "temperature 1": "", "temperature 2":“” } } } ]
我也尝试过将 UpdateRecord 与 Record Reader/Writer 一起使用,但传递正确的模式会导致第一个变量出错,因为它无法将 "user1" 与初始 [=63] 中的键匹配=].
我已经设法按如下方式计算出 Jolt 规格:
[ { "operation": "shift", "spec":{ "id": "id", "ip": "ip", "t": "t", "T": "T", "variables":{ "0": "username", "1": "valid", "2": "temperature 1", “3”:"temperature 2" } } } ]
感谢 daggett 的贡献。