我需要使用JOLT来转换JSON。我是一个震荡转型的新手。以下是详细信息。我们正在尝试使用NiFi中的Jolt转换来转换jsons。
以下是输入
{
"Parent": {
"Child": {
"GrandChild": [
{
"DeepDown": [
{
"Field2": "2019-01-29T11:32:45",
"Field1": "015",
"Field3": "data2"
}
]
},
{
"DeepDown": [
{
"Field2": "2019-01-30T11:32:45",
"Field1": "016",
"Field3": "data1"
}
]
}
]
}
}
}这是我写的JOLT (更新感谢HariKrishna!)
[
{
"operation": "shift",
"spec": {
"Parent": {
"Child": {
"GrandChild": {
"*": {
"DeepDown": {
"*": {
"Field1": "Root.RepeatThis.[].Element1",
"Field2": "Root.RepeatThis.[].Element2",
"Field3": "Root.RepeatThis.[].Element3"
}
}
}
}
}
}
}
}
]我期待着下面的输出。
{
"Root" : {
"RepeatThis" : [ {
"Element1" : "015",
"Element2" : "2019-01-29T11:32:45",
"Element3" : "data2"
}, {
"Element1" : "016",
"Element2" : "2019-01-30T11:32:45",
"Element3" : "data1"
} ]
}
}我无法使循环工作。这是我从JOLT中得到的输出。
{
"Root" : {
"RepeatThis" : [ {
"Element1" : "015"
}, {
"Element2" : "2019-01-29T11:32:45"
}, {
"Element3" : "data2"
}, {
"Element1" : "016"
}, {
"Element2" : "2019-01-30T11:32:45"
}, {
"Element3" : "data1"
} ]
}
}发布于 2019-02-01 21:55:09
尝试使用此JOLT规范
[
{
"operation": "shift",
"spec": {
"Parent": {
"Child": {
"GrandChild": {
"*": {
"DeepDown": {
"*": {
"Field2": "Root.RepeatThis.[].Element2"
}
}
}
}
}
}
}
}
]发布于 2019-02-07 03:09:54
下面应该会产生所需的输出,[&3]将使用GrandChild中的数组位置(从当前上下文往上3层),因此正确地对它们进行了分组:
[
{
"operation": "shift",
"spec": {
"Parent": {
"Child": {
"GrandChild": {
"*": {
"DeepDown": {
"*": {
"Field1": "Root.RepeatThis.[&3].Element1",
"Field2": "Root.RepeatThis.[&3].Element2",
"Field3": "Root.RepeatThis.[&3].Element3"
}
}
}
}
}
}
}
}
]https://stackoverflow.com/questions/54474418
复制相似问题