Вот входной JSON, который я помещу в процессор преобразования JOLT в NiFi.
И мой ожидаемый выходной JSON:
Обратите внимание, что эти поля были удалены:
Поскольку они являются пустыми строками в массивах, я не хочу включать их в результирующий объект JSON.
Как мне создать спецификацию JOLT для этого?
Я попробовал эту спецификацию, чтобы удалить пустые массивы.
Это не сработало
и просто вернуло:
Он удалил все поля с пустыми массивами.
"guests" : {
"amy" : "amy",
"theresa" : [ "Chef" ],
"jim" : [ "Bear Specialist" ],
"john" : [ "Tour Guide" ],
"heather" : [ "" ],
"brad" : [ "" ],
"thomas" : [ "" ],
"jane" : [ "" ]
},
"dataSchema" : "dataSchema",
"data" : {
"key1" : "value1",
"key2" : {
"key3" : "value3",
},
"label" : "dummyLabel",
"campingEquipment" : {
"someKey" : "someValue"
}
},
"mountainRange" : {
"elevation" : "8000",
"temperature" : "50"
}
}
{
"guests" : {
"amy" : "amy",
"theresa" : [ "Chef" ],
"jim" : [ "Bear Specialist" ],
"john" : [ "Tour Guide" ]
},
"dataSchema" : "dataSchema",
"data" : {
"key1" : "value1",
"key2" : {
"key3" : "value3",
},
"label" : "dummyLabel",
"campingEquipment" : {
"someKey" : "someValue"
}
},
"mountainRange" : {
"elevation" : "8000",
"temperature" : "50"
}
}
"heather" : [ "" ],
"brad" : [ "" ],
"thomas" : [ "" ],
"jane" : [ "" ]
[
{
"operation": "modify-overwrite-beta",
"spec": {
"guests": {
"theresa": "=recursivelySquashNulls",
"jim": "=recursivelySquashNulls",
"john": "=recursivelySquashNulls",
"heather": "=recursivelySquashNulls",
"brad": "=recursivelySquashNulls",
"thomas": "=recursivelySquashNulls",
"jane": "=recursivelySquashNulls"
}
}
},
{
"operation": "remove",
"spec": {
"guests": {
"theresa": "",
"jim": "",
"john": "",
"heather": "",
"brad": "",
"thomas": "",
"jane": ""
}
}
}
]
"guests" : {
"amy" : "amy"
},
Лонгин
Вопрос задан19 февраля 2024 г.