не в состоянии демонтировать JSON к объекту - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть атрибут (который создается службой REST и перехватывается процессором invokeHTTP) в формате JSON, например:

test => {"key":"value"}

, а затем я хочу поместить его в потоки содержимого JSON с помощью процессора JOLT,мой контент выглядит примерно так:

{
    "id": 123,
    "user": "foo"
}

и моя спецификация JOLT такова:

[{
    "operation": "default",
    "spec": {
        "interest": "${test}"
    }
}]

проблема здесь в том, что в расширенном окне JOLT с атрибутом test nifi не может поместить объект jsonи показывал эту ошибку:

"Ошибка произошла во время преобразования"

, и когда запускается процессор, появляется эта подробная ошибка:

"Невозможно распаковать JSON на объект "


Мой желаемый результат таков:

{
    "id": 123,
    "user": "foo",
    "interest": {"key":"value"}
}

Другой возможный вопрос ... я выбираю правильное решениепреодолеть эту ситуацию?у меня есть поток, который содержит содержимое JSON и с invokeHTTP, который отправляется в службу REST и затем хранит ответы в атрибуте, а затем с процессором JOLT я объединяю их вместе (предыдущий JSON и новый JSON в атрибуте)

1 Ответ

0 голосов
/ 10 декабря 2018

Поскольку у вас есть атрибут test , связанный с flowfile

  • Попробуйте использовать ReplaceText процессор вместо JoltTransformJson

ReplaceText Configs:

Поиск значения

}

Замена значения

,"interest": ${test}}

Набор символов UTF-8 Максимальный размер буфера

1 MB

Стратегия замены

Literal Replace

Режим оценки

Entire text

enter image description here Ввод:

{"id": 123,"user": "foo"}

Выход:

{"id": 123,"user": "foo","interest": {"key":"value"}}
...