转换 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 的贡献。