Я начал использовать Node-Red для разработки панели управления MQTT, Я просто начал с простого примера, чтобы подписаться на тему и отладить сообщение. Однако мне не удалось получить значение json моего сообщения и преобразовать его из base64 в строку.
мое сообщение выглядит как парнишка:
"{"metrics":{},"body":"eyJjb250ZW50LXNwZWMiOiJ1cm46c3BlYzpcL1wvZWNsaXBzZS5vcmdcL3VuaWRlXC9tZWFzdXJlbWVudC1tZXNzYWdlI3YyIiwiZGV2aWNlIjp7ImRldmljZUlEIjoiMTMyNDUifSwibWVhc3VyZW1lbnRzIjpbeyJzZXJpZXMiOnsiJF90aW1lIjpbMF0sIlZBIjpbMjM5MzMwLjBdfSwidHMiOiIyMDE4LTA0LTI1VDA5OjM4OjU0LjIyOCswMDAwIn1dfQ= = "}"Я хочу извлечь тело сообщения и преобразовать его.
Я уже пробовал эту функцию после использования JSONconverter:
return msg.payload.body;но я получил его ошибку: «Функция попыталась отправить сообщение типа строка»
С наилучшими пожеланиями
Уважаемый knolleary, это была моя ошибка, извините, я обновил заголовок. Моя настоящая проблема заключается в получении значения из объекта сообщения. С наилучшими пожеланиями
Расскажите подробнее о том, что вы пробовали. Вы говорите: «Я пробовал эту функцию» ... но вы не предоставили код.
Спасибо за ответ, код обновил, функция простая: return msg.payload.body;



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Узел Function должен возвращать объект сообщения, а не простое значение. Вот почему вы получаете сообщение об ошибке, в котором говорится, что функция отправляет строку.
Если вы хотите, чтобы полезная нагрузка отправляемого сообщения была этим строковым значением, вы должны сделать:
msg.payload = msg.payload.body;
return msg;
Для такого рода вещей вам лучше использовать узел «Изменить» с двигатьсяmsg.payload.body на msg.payload.
Большое спасибо, мне нужно извлечь тело сообщения обоими методами, однако, когда я извлекаю сообщение и конвертирую его из 64base, у меня будет вывод String. Как преобразовать строку в JSON? Большое спасибо за вашу помощь
Если у вас есть строковое представление JSON, просто передайте сообщение через узел JSON, который вернет объект JSON.
Привет, обновите вопрос, чтобы показать, что вы пытаетесь сделать. Название вопроса, похоже, не связано с основной частью вопроса - речь идет о подключении к брокеру или о получении значения из объекта сообщения?