如何在嵌套有效载荷中获取有效载荷数据?

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 字符串,所以我修改了代码以反映这一点。