Я использую Apache NiFi и получаю от встроенного микро через сокет TCP/IP файл JSON в форме:
{ "идентификатор": 123456, "ip": "192.168.1.1", «т»: -12,9, «Т»: -23,8, "переменные": [ "пользователь1", 0, -12,97, 23,87 ] }
и хотел бы преобразовать его так, чтобы ключи переменных добавлялись, как они мне известны, следующим образом:
{ "идентификатор": 123456, "ip": "192.168.1.1", «т»: -12,9, «Т»: -23,8, "переменные": [ "имя пользователя": "user1", "действительный": 0, "температура 1": -12,97, "температура 2": 23,87 ] }
а затем иметь доступ к паре ключ-значение, такой как variable.username.
Я пытался использовать JoltTransformJSON, но не знаю, как правильно написать спецификацию, если она может это сделать!! Я написал следующую спецификацию толчка:
[ { "операция": "смена", "спецификация": { "я сделал", "ай-пи": "ай-пи", "т": "т", «Т»: «Т», "переменные": { "имя пользователя": "", "действительный": "", "температура 1": "", "температура 2": "" } } } ]
Я также пытался использовать UpdateRecord с Record Reader/Writer, но передача правильной схемы вызывает ошибку в первой переменной, поскольку она не может сопоставить «user1» с ключом из исходного JSON.
Пробовали использовать процессор JoltTransformJson, но не смогли заставить его работать. Даже пытался использовать jolt-demo.appspot.com. Я также пытался использовать UpdateRecord с Record Reader/Writer, но передача правильной схемы вызывает ошибку в первой переменной.
пожалуйста, отредактируйте свой вопрос и предоставьте свою встряску, тогда, возможно, кто-нибудь поможет вам с этим. также добавьте тег jolt
/
Мне удалось разработать Jolt Spec следующим образом:
[ { "операция": "смена", "спецификация": { "я сделал", "ай-пи": "ай-пи", "т": "т", «Т»: «Т», "переменные": { "0": "имя пользователя", "1": "действительный", "2": "температура 1", "3": "температура 2" } } } ]
Спасибо даггетт за ваш вклад.
проверить процессор JoltTransformJson