Преобразование JOLT удаляет все поля, кроме одного
Я хочу удалить все поля из JSON, кроме одного с именем foo
, Я использовал спецификацию трансформации, как указано ниже:
[
{
"operation": "remove",
"spec": {
"^(?!foo).*$": ""
}
}
]
Я попытался выполнить это на http://jolt-demo.appspot.com/, но это не работает, и он выводит входной JSON, без преобразования. Я делаю что-то неправильно?
1 ответ
Решение
Да, "shift" поддерживает любые соответствия "регулярных выражений", кроме "", поэтому "^ (?! foo).$" Не будет работать.
Я думаю, что вам лучше, используя "shift", чтобы сопоставить "foo" и скопировать его в вывод. Все, что не соответствует спецификации "shift", не копируется в вывод.
спекуляция
[
{
"operation": "shift",
"spec": {
// matches top level key "foo" in the intput, and copies the
// value at that location to the output map with key "foo".
"foo" : "foo"
}
}
]
Shift копирует данные со входа на новый выход, все остальные операции (по умолчанию, удаление, количество элементов и т. Д.) Изменяют ввод.