我正在使用Apache NiFi,并通过TCP / IP套接字从嵌入式微型计算机接收以下格式的JSON文件:
{ “ id”:123456, “ ip”:“ 192.168.1.1”, “ t”:-12.9, “ T”:-23.8, “变量”:[ “ user1”, 0, -12.97, 23.87 ] }
,并希望对其进行转换,以便添加变量的键,如下所示:
{ “ id”:123456, “ ip”:“ 192.168.1.1”, “ t”:-12.9, “ T”:-23.8, “变量”:[ “ username”:“ user1”, “有效”:0, “温度1”:-12.97, “温度2”:23.87 ] }
,然后才能访问键值对,例如variables.username。
我尝试使用JoltTransformJSON,但不知道如何正确编写规范!我写了以下震动说明:
[ { “ operation”:“ shift”, “规范”:{ “ id”:“ id”, “ ip”:“ ip”, “ t”:“ t”, “ T”:“ T”, “变量”:{ “用户名”: ””, “有效”:“”, “温度1”:“”, “温度2”:“” } } } ]
我也尝试过将UpdateRecord与Record Reader / Writer一起使用,但是传递正确的架构会导致第一个变量出错,因为它无法将“ user1”与初始JSON中的键匹配。
答案 0 :(得分:0)
我设法按以下方式制定了Jolt Spec:
[ { “ operation”:“ shift”, “规范”:{ “ id”:“ id”, “ ip”:“ ip”, “ t”:“ t”, “ T”:“ T”, “变量”:{ “ 0”:“用户名”, “ 1”:“有效”, “ 2”:“温度1”, “ 3”:“温度2” } } } ]
感谢达吉特的贡献。