Я использую 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.