【问题标题】:How do I extract the value of 'temp' from a nested JSON payload in Node-red?如何从 Node-red 中的嵌套 JSON 有效负载中提取“temp”的值?
【发布时间】:2021-05-05 11:03:43
【问题描述】:

{"rssi":-46,"message":"{\"temp\":55,\"hum\":88,\"moist\":50}"}

在上面的payload中,我可以使用Node-red中的以下代码提取rssi的值。

p = JSON.parse(msg.payload);
node.log(typeof p);
msg.payload = p.rssi;
return msg;

但是如何从中提取temp 的值。

【问题讨论】:

  • 在第一行之后没有涉及“JSON”。 p 只是一个普通的旧对象。
  • 如果你以后有这样的说法payload,而不是在函数节点中有JSON.parse(),你总是可以通过JSON节点传递对象

标签: javascript json node-red


【解决方案1】:

源 json 中缺少一个冒号。应该是

{"rssi":-46,"snr":{"temp":55,"hum":88,"moist":55}"}

就像@Andreas 提到的,在第一行之后就是访问对象“p”。

你应该可以使用

msg.payload=p.snr.temp;

【讨论】:

  • 我更正了帖子中缺少的冒号。我尝试了您的建议,但调试消息显示“未定义”。请有其他建议。
  • 您是否尝试过将sni 更改为message,如问题中的示例所示?
  • "msg.payload=p.snr.temp" 在 Node_red 中不起作用,调试时显示未定义的有效负载。
猜你喜欢
  • 2023-03-11
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多