【问题标题】:Node-Red function : how to get a specific value out of object as Msg.Payload after inject?Node-Red 函数:注入后如何从对象中获取特定值作为 Msg.Payload?
【发布时间】:2022-07-15 23:38:25
【问题描述】:

我正在尝试创建一个 Node Red 流并从输出中输出一个图形。目前我已经设置了我的流程,这让我得到了一个具有多个键值对的对象,例如'id'、's'、'r'、'v'和't'作为键和它们各自的值,因为我注入了节点。

注入后的示例输出:

"{"readResults":[{"id":"AB.CMM.Prgm_MainProgram.f_ten_point_avg_left_camber","s":true,"r":"","v":0.0261451192,"t":1657888956310}]}"

现在我的目标是只在msg.payload 中获取"v" 键的值,因此作为一个例子,当我注入它时,如果考虑到上述对象,它应该只给我0.261451192

我创建了一个函数节点,下面是我的超级简单代码,我试图获得预期的输出但没有成功。

var newMsg = { payload: msg.payload[5] };
return newMsg;

请注意,我是 Node-RED 的超级新手,我正在努力学习,非常感谢您的帮助和指导。

我试图详细解释这个问题,但如果有人不关注我,我希望下图能给你一个更好的主意。非常感谢!

【问题讨论】:

    标签: node-red kepserverex


    【解决方案1】:

    您似乎已将 HTTP 请求节点设置为输出 UTF-8 字符串 而不是 JSON 对象。因此,使用数组样式表示法 (object[2]) 只会将该偏移量处的字符返回到字符串中。

    正确的做法是将 HTTP 请求配置底部的输出类型更改为已解析的 JSON 对象,这意味着您可以通过它们的键访问值。例如msg.payload.vmsg.payload['v']

    另一个选项是通过 JSON 节点的实例传递消息,该实例将根据输入消息的格式将字符串转换为对象或将对象转换为字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 2022-01-01
      • 2018-12-24
      • 2010-11-08
      相关资源
      最近更新 更多