[英]Jolt Transformation with deep nested arrays
我需要使用JOLT轉換JSON。 我是JOLT轉型的新手。 以下是詳細信息。 我們正在嘗試在NiFi中使用Jolt轉換來轉換json。
這是輸入
{
"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"
} ]
}
}
嘗試使用此JOLT規范
[
{
"operation": "shift",
"spec": {
"Parent": {
"Child": {
"GrandChild": {
"*": {
"DeepDown": {
"*": {
"Field2": "Root.RepeatThis.[].Element2"
}
}
}
}
}
}
}
}
]
下面的代碼將產生所需的輸出, [&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"
}
}
}
}
}
}
}
}
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.