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