Node-RED:Рецепты/Как вернуть JSON-ответ в виде JavaScript-объекта
Как вернуть JSON-ответ в виде JavaScript-объекта[1]
Проблема
Вам нужно вернуть JSON-ответ на HTTP-запрос в виде JavaScript-объекта.
Решение
По умолчанию нода «HTTP request» сохраняет тело JSON-ответа в свойство «msg.payload» в виде строки. Поменяйте значение в опции «Return» этой ноды на «a parsed JSON object». В результате JSON-ответ будет преобразован в JavaScript-объект и сохранен в свойство «msg.payload», после чего к нему смогут получить доступ ноды, идущие дальше в потоке.
Пример
[{"id":"14c60a10.794df6","type":"http request","z":"c9a81b70.8abed8","name":"","method":"GET","ret":"obj","url":"https://jsonplaceholder.typicode.com/posts/{{post}}","tls":"","x":390,"y":500,"wires":[["b4ea8dd4.61a05"]]},{"id":"b4ea8dd4.61a05","type":"debug","z":"c9a81b70.8abed8","name":"","active":true,"console":"false","complete":"payload.title","x":570,"y":500,"wires":[]},{"id":"3479192a.04f016","type":"inject","z":"c9a81b70.8abed8","name":"post id","topic":"","payload":"2","payloadType":"str","repeat":"","crontab":"","once":false,"x":90,"y":500,"wires":[["e69250cf.368fd"]]},{"id":"e69250cf.368fd","type":"change","z":"c9a81b70.8abed8","name":"","rules":[{"t":"set","p":"post","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":230,"y":500,"wires":[["14c60a10.794df6"]]}]
Пример выше – это пример из статьи «Как задать URL запроса», но с измененными настройками в ноде «HTTP request». Кроме того, была отредактирована нода «Debug» – теперь она показывает только свойство «title» разобранного JSON-ответа:
"qui est esse"
Разбор
Если ваш HTTP-запрос возвращает XML, вы можете воспользоваться нодой «XML», чтобы преобразовать XML-документ в JavaScript-объект.
См.также
Внешние ссылки