Node-RED:Рецепты/Как вернуть JSON-ответ в виде JavaScript-объекта: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
(не показаны 2 промежуточные версии 1 участника)
Строка 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>=
Строка 20: Строка 17:
[[File:nodered_recipe_parse-json-response.png|center]]
[[File:nodered_recipe_parse-json-response.png|center]]


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
[{"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"]]}]
[{"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"]]}]
</syntaxhighlight>
</syntaxhighlight>
Строка 26: Строка 23:
Пример выше – это пример из [[Node-RED:Рецепты/Как_задать_URL_запроса|статьи «Как задать URL запроса»]], но с измененными настройками в ноде '''«HTTP request»'''. Кроме того, была отредактирована нода '''«Debug»''' – теперь она показывает только свойство '''«title»''' разобранного [[JSON-ответ]]а:
Пример выше – это пример из [[Node-RED:Рецепты/Как_задать_URL_запроса|статьи «Как задать URL запроса»]], но с измененными настройками в ноде '''«HTTP request»'''. Кроме того, была отредактирована нода '''«Debug»''' – теперь она показывает только свойство '''«title»''' разобранного [[JSON-ответ]]а:


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
"qui est esse"
"qui est esse"
</syntaxhighlight>
</syntaxhighlight>
Строка 35: Строка 32:


=См.также=
=См.также=
 
{{ads}}
=Внешние ссылки=
=Внешние ссылки=


Строка 41: Строка 38:
[[Категория:Рецепты Node-RED]]
[[Категория:Рецепты Node-RED]]
[[Категория:Рецепты]]
[[Категория:Рецепты]]
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 18:24, 14 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Как вернуть 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-объект.

См.также

Внешние ссылки