节点红色Wemo查找JSON解析错误msg.payload:undefined

时间:2018-02-08 03:03:27

标签: json node.js node-red

我正在使用带有WeMo开关的Node Red的WeMo节点插件。

使用“WeMo Lookup”功能,我收到以下消息有效负载:

  

2/8 / 201,12:30:34 PM节点:6dece90e.84b898 WemoCheck:msg.payload:   对象{state:1}

据我所知,我应该使用JSON函数来获取实际值。使用启用了format选项的JSON函数,我收到以下消息有效负载:

  

2/8 / 201,12:41:11 PM节点:5ae2b7bf.1e0e98 WemoCheck:msg.payload:   string [18]“{↵”state“:1↵}”

我相信这是理想的结果。

但是我无法使用函数获取值。我尝试了以下两个并返回“msg.payload:undefined”

var value = msg.payload[0].state;
msg.payload = value;
return msg;

var value = msg.payload.state;
msg.payload = value;
return msg;

我想我可能会遗漏一些明显的东西。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您根本不需要使用JSON节点,输出已经是JSON对象。

如果您只是希望有效负载从状态值为1或0,那么您的第二个版本的函数节点应该可以工作(即使它有一个额外的不需要的步骤)。

msg.payload = msg.payload.state;
return msg;

您不需要一个函数节点来执行此操作,更改节点将允许您使用类似的内容移动值

enter image description here