Node-Red:使用变量 keys/identifiers 创建一条消息
Node-Red: Create a message with variable keys/identifiers
有这样一条消息:
[
{
"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({ 别名:src });”我尝试用作标识符(var 别名)的所有内容都将被解释为字符串,即使没有撇号。如何使用变量的值作为消息中的标识符?
您需要使用方括号表示法将键添加到变量中的对象。
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;
有这样一条消息:
[
{
"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({ 别名:src });”我尝试用作标识符(var 别名)的所有内容都将被解释为字符串,即使没有撇号。如何使用变量的值作为消息中的标识符?
您需要使用方括号表示法将键添加到变量中的对象。
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;