Node-RED:Рецепты/Как вернуть JSON-ответ в виде JavaScript-объекта: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{Node-RED/Панель перехода}} | {{Node-RED/Панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Как вернуть JSON-ответ в виде JavaScript-объекта<ref>[https://cookbook.nodered.org/http/parse-json-response cookbook.nodered.org - Get a parsed JSON Response]</ref>= | =Как вернуть JSON-ответ в виде JavaScript-объекта<ref>[https://cookbook.nodered.org/http/parse-json-response cookbook.nodered.org - Get a parsed JSON Response]</ref>= | ||
Строка 35: | Строка 32: | ||
=См.также= | =См.также= | ||
{{ads}} | |||
=Внешние ссылки= | =Внешние ссылки= | ||
Версия от 10:13, 7 августа 2022
Как вернуть 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-объект.
См.также
Внешние ссылки