apache-nifi - 使用 Jolt 将字段从内部 JSON 插入外部 JSON
问题描述
我有一个这样的 JSON
"Top1": {
"top11": "top11",
"top12": "top12",
"Middle1":
{
"middle11": "middle11",
"middle12": "middle12",
},
Middle2":
{
"middle21": "middle21",
"middle22": "middle22",
"Inner1":{
"inner11":"inner11"
"inner12":"inner12"
}
}
}
我怎样才能像这样转换它
"Top1": {
"top11": "top11",
"top12": "top12",
"Middle1":
{
"middle11": "middle11",
"middle12": "middle12",
"inner11:"inner11"
},
Middle2":
{
"middle21": "middle21",
"middle22": "middle22",
"Inner1":{
"inner12":"inner12"
}
}
}
我只需要把 inner11 放在 Middle1 里面。如何通过 jolt 实现这一目标。我尝试使用@
,[&]
但这仅在最里面是一个数组而不是像这样的单个对象时才有效。
解决方案
这些都是已知的字段名称吗?如果是这样,您可以使用以下规范:
[
{
"operation": "shift",
"spec": {
"Top1": {
"Middle1": {
"@(1,Middle2.Inner1.inner11)": "Top1.Middle1.inner11",
"*": "Top1.Middle1.&"
},
"Middle2": {
"Inner1": {
"inner11": null,
"*": "Top1.Middle2.Inner1.&"
},
"*": "Top1.Middle2.&"
},
"*": "Top1.&"
}
}
}
]