【问题标题】:Node-Red: Create a message with variable keys/identifiersNode-Red:使用可变键/标识符创建消息
【发布时间】:2021-03-15 08:43:16
【问题描述】:

有这样一条消息:

[
    {
        "source_id": 1,
        "alias": "myalias1",
    },
    {
        "source_id": 2,
        "alias": "myalias2",
    }
]

我想把它改成这样的消息:

[
    {
        "myalias1": 1,
    },
    {
        "myalias2": 2,
    }
]

尝试这样做,我使用了这个功能:

var result = [];
var str = "";

for(var i = 0; i < msg.payload.length; i++)
{  
    var alias = msg.payload[i].alias;
    var src = msg.payload[i].source_id;
    result.push({ alias : src });
}

msg.options = result;
return msg;

但这给出了一个信息:

[
    {
        "alias": 1,
    },
    {
        "alias": 2,
    }
]

在“result.push({ alias : src });”行中我试图用作标识符(var 别名)的所有内容都将被解释为字符串,即使没有撇号。如何在消息中使用变量的值作为标识符?

【问题讨论】:

    标签: javascript json node-red


    【解决方案1】:

    您需要使用方括号表示法从变量中向对象添加键。

    var result = [];
    var str = "";
    for(var i = 0; i < msg.payload.length; i++)
    {  
        var alias = msg.payload[i].alias;
        var src = msg.payload[i].source_id;
        var entry = {}
        entry[alias] = src
        result.push(entry);
    }
    
    msg.options = result;
    return msg;
    

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      相关资源
      最近更新 更多