我正在尝试使用Nifi JOLT处理器将平面JSON对象转换为JSON对象列表,如下面的输出所示。参数"p_7_1_0"
、"px_2_7_1_0"
、"pv_7_1_1"
的名称或数字可能不同(例如,我可以使用**{“时间戳”:1559347670,“程序错误_2_1_0”:1,“第2_2_1_0页”:1 }**)
有人能帮我看看震动规格吗?
输入Json:
{
"timestamp": 1559347670,
"p_7_1_0": 6,
"px_2_7_1_0": 1,
"pv_7_1_1": 1
}
预期输出JSON:
{
"values": [
{
"key": "p_7_1_0",
"value": 6,
"timestamp": 1559347670
},
{
"key": "px_2_7_1_0",
"value": 1,
"timestamp": 1559347670
},
{
"key": "pv_7_1_1",
"value": 1,
"timestamp": 1559347670
}
]
}
先谢了
2条答案
按热度按时间vxbzzdmp1#
在阅读了这个问题之后,通过JOLT转换沿着数组复制单个值
答案是https://stackoverflow.com/a/50438480/2733184
我看得出来,你们想要的东西出奇地相似。然而,我绝不会一针见血地提出需要问的问题。
我鼓励你去前面提到的Q和A,阅读所有的内容(包括规范中的评论),并给予他们一些赞成票。
我希望有人能解释一下
#
是干什么用的,我的第一React是它像&
(成员名称),但看起来像是成员位置(?)。oalqel3c2#
您可以循环遍历具有**
_
字符的属性,以区别于单个shift转换规范中的timestamp
**,例如其中
***
"@1,timestamp"
**表示在树中向上一级后获取时间戳属性的值[#2]
在右侧将在逻辑上表示遍历:
和{
合计2个级别以到达最顶层属性的级别,而[# ]
**将生成数组形式的结果