Javascript 过滤文本内容并尝试将过滤后的内容转换为JSON

Javascript 过滤文本内容并尝试将过滤后的内容转换为JSON,javascript,node.js,json,node-red,Javascript,Node.js,Json,Node Red,我有一个字符串变量msg.payload形式的输入,如下所示 Hi Team, Below are the details of for the given source platform. name=abc status=Active company=Discovery FromDate=6/05/2020 ToDate=20/05/2020 Please do the needful ASAP Thanks & Regards, xyz 我只想坐飞机 name=abc status

我有一个字符串变量msg.payload形式的输入,如下所示

Hi Team,
Below are the details of for the given source platform.
name=abc
status=Active
company=Discovery
FromDate=6/05/2020
ToDate=20/05/2020
Please do the needful ASAP
Thanks & Regards,
xyz
我只想坐飞机

name=abc
status=Active
company=Discovery
FromDate=6/05/2020
ToDate=20/05/2020
忽略其余部分,然后使用类似JavaScript的代码将其转换为JSON

{"name":"abc", "status":"Active","company":"ABCD" ,"FromDate":"6/05/2020","ToDate":"20/05/2020"}

我怎样才能做到呢?输入中的所有数据的格式都是key=value。

您可以利用几个内置的JavaScript字符串和数组函数

使用以下命令将输入转换为行数组:

过滤掉不包含等号的行:

使用和加载具有键值属性的对象:

let object={};
kvPairs.forEach(行=>{
[key,val]=line.split('=');
对象[键]=val;
});
总而言之:

const input='Hi Team\n以下是给定源平台的详细信息。\nname=abc\nstatus=Active\ncompany=Discovery\nFromDate=6/05/2020\nToDate=20/05/2020\n请尽快做必要的工作\n感谢和问候,\nxyz';
常量行=input.split('\n');
常量kvPairs=lines.filter(line=>line.includes('=');
让对象={};
kvPairs.forEach(行=>{
[key,val]=line.split('=');
对象[键]=val;
});
log('object:',object)
const lines = input.split('\n');
const kvPairs = lines.filter(line => line.includes('='));