转换JSON文件以将键添加到数组值

时间:2019-04-07 11:02:39

标签: json apache-nifi jolt

我正在使用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中的键匹配。

1 个答案:

答案 0 :(得分:0)

我设法按以下方式制定了Jolt Spec:

[   {     “ operation”:“ shift”,     “规范”:{       “ id”:“ id”,       “ ip”:“ ip”,       “ t”:“ t”,       “ T”:“ T”,       “变量”:{         “ 0”:“用户名”,         “ 1”:“有效”,         “ 2”:“温度1”,         “ 3”:“温度2”       }     }   } ]

感谢达吉特的贡献。