Преобразование файла JSON для добавления ключей к значениям массива - PullRequest
0 голосов
/ 07 апреля 2019

Я использую Apache NiFi и получаю от встроенного микро через сокет TCP / IP файл JSON в форме:

{ "id": 123456, «ip»: «192.168.1.1», «т»: -12,9, «Т»: -23,8, "переменные": [ "User1", 0, -12,97, 23,87 ] }

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

{ "id": 123456, «ip»: «192.168.1.1», «т»: -12,9, «Т»: -23,8, "переменные": [ "username": "user1", «действительный»: 0, «температура 1»: -12,97, «температура 2»: 23,87 ] }

и затем для доступа к паре ключ-значение, такой как variables.username.

Я пытался использовать JoltTransformJSON, но не знаю, как правильно написать спецификацию, если это возможно !! Я написал следующую спецификацию удара:

[ { «операция»: «смена», "spec": { "я сделал", "ip": "ip", "т": "т", "Т": "Т", "переменные": { "имя пользователя": "", "действительный": "", "температура 1": "", "температура 2": "" } } } ]

Я также пытался использовать UpdateRecord с Record Reader / Writer, но передача правильной схемы вызывает ошибку в первой переменной, поскольку она не может сопоставить «user1» с ключом из исходного JSON.

1 Ответ

0 голосов
/ 07 апреля 2019

Мне удалось разработать Jolt Spec следующим образом:

[ { «операция»: «смена», "spec": { "я сделал", "ip": "ip", "т": "т", "Т": "Т", "переменные": { «0»: «имя пользователя», «1»: «действительный», «2»: «температура 1», «3»: «температура 2» } } } ]

Спасибо, Даггетт, за ваш вклад.

...