【问题标题】:Node-Red String into payload name节点红色字符串转换为有效负载名称
【发布时间】:2020-01-14 13:12:26
【问题描述】:

我的数组有效负载类似于:msg.payload[index].temp。我将数组切割成单个部分,以通过 MQTT 发布数组的单个部分。

所以我得到了msg.payload.tempmsg.parts.index

msg:{
       payload:{
                    address: "e4:32:a3:3a:99:97";
                    temp: "32"
                }
         parts: {
                   type: "array";
                   index: "16";
                   count: "17";
                }
}

是否可以将索引号放入名称msg.payload.temp 中?所以我得到了类似msg.payload.temp_6 的东西。我尝试将字符串组合在一起,例如:

var temp = "msg.payload.temp_" + msg.parts.index.toString();
temp = payload.temp;
return msg;

我需要从字符串到 json 的对话,以便 Node-Red 检测到属性吗?

【问题讨论】:

  • 你已经尝试了什么?
  • 试过 var temp = "msg.payload.temp-"+msg.parts.index.toString() 但不起作用
  • 编辑问题以添加详细信息(显示您在函数节点中使用的所有代码),并解释“不起作用”的意思
  • 我想将索引号添加到我的有效负载的属性名称中。属性名称始终相同,但索引号总是在变化,因为我在函数之前拆分的数组的大小随着时间的推移而上升当我尝试将索引号“msg.parts.index”与“msg.payload”结合起来时。 temp" 到字符串 node-red 不接受该属性。也许我需要从字符串到 json 的对话?
  • EDIT这个问题!

标签: javascript arrays node.js node-red


【解决方案1】:

您可以向 msg.payload 添加一个属性。

let index = 6;
msg.payload["temp"+index] = 'Whatever';

这将作为

console.log(msg.payload.temp6); // Whatever

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多