我尝试获取一些节点为红色的地下天气信息。我已发出HTTP请求,要求每小时有十天的天气。
我需要提取一个温度。 我用这个:
var newMsg = { payload: msg.payload.hourly_forecast.0.temp.metric };
return newMsg;
如果将msg.payload.hourly_forecast.0.temp.metric
放到调试控制台中,它将起作用,但是在我的函数中却出现此错误:
前导小数点可以与点“ .0”相混淆
所以我尝试了这个:
var toto = 0;
var newMsg = { payload: msg.payload.hourly_forecast + '.' + toto + '.' + temp.metric };
return newMsg;
但不起作用,错误是
ReferenceError:未定义温度(第2行,第74行)
答案 0 :(得分:3)
msg.payload.hourly_forecast
是一个数组,如您在此处显示的https://ibb.co/ejaxge
请使用msg.payload.hourly_forecast[0].temp.metric
。
在此处了解有关数组的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
答案 1 :(得分:1)
要在JavaScript中处理数组元素,请使用方括号符号:
var newMsg = { payload: msg.payload.hourly_forecast[0].temp.metric };
return newMsg;
Node-RED中的Debug侧栏也可以用于标识任何消息元素的路径。在此处的文档中对此进行了描述:https://nodered.org/docs/user-guide/messages#understanding-the-structure-of-a-message