我有几个入口有效载荷,例如
{"topic":"homepi/dht11repub", "payload":
"{ \"timestamp\": \"2018-11-26T08:50:55Z\",
\"Temperature\": 17.0,
\"humidity\": 92.0 }",
"qos":0,"retain":false,"_msgid":"b7af75be.485088"}
我想在节点红色函数中选择数据。我尝试过
var t =msg.payload
payload= t.payload
return msg
和
msg.payload[payload]
但不起作用。 有人知道我该如何解决这个问题?
答案 0 :(得分:0)
首先将传入消息传递通过JSON
节点,以将其转换为JSON对象。
如果之后仍然需要它作为字符串,则可以将其传递到另一个JSON
节点,该节点会将其转换回字符串。
答案 1 :(得分:0)
首先,您的有效载荷是一个json字符串。
您是否尝试过:
msg.payload = JSON.parse(msg.payload);
或者如果您只想返回温度作为输出:
const tmp = JSON.parse(msg.payload);
return {payload: tmp.payload.Temperature};
您使用msg.payload [payload]编写的语法不正确,您应该编写msg.payload ['payload']。
在红色节点中,内容总是在消息msg的有效负载属性中返回。必须遵守这种格式。
[编辑] 我的错误:您的有效负载是json字符串,因此我修改了代码以反映这一点。