将 IMAP + mailparser return object 解析为 JSON
Parsing IMAP + mailparser return object into a JSON
我为此使用节点的 IMAP 和 Mailparser 模块。
我的邮箱 reader 函数有这一行解析 header:
var parsed_header = inspect(Imap.parseHeader(buffer));
这将 return:
{ from: [ 'user <user@mail.com>' ],
subject: [ 'Test' ] }
我希望能够使用 JSON.parse 将其解析为 JSON,但是因为键周围没有引号 + 键都在列表中,可以这样做吗?
我用两个正则表达式替换解决了同样的问题:
var header = inspect(Imap.parseHeader(buffer)).replace(/'/g,'"').replace(/([a-z]+)(: ?[\[\n])/g, '""');
var headerObj = JSON.parse(header);
第一个将单引号替换为双引号,第二个在字段名称周围添加引号。
只需var parsed_header = Imap.parseHeader(buffer)
,您就会得到一个对象。因此,要获取 "from" 字段,您只需使用 parsed_header.from
我为此使用节点的 IMAP 和 Mailparser 模块。
我的邮箱 reader 函数有这一行解析 header:
var parsed_header = inspect(Imap.parseHeader(buffer));
这将 return:
{ from: [ 'user <user@mail.com>' ],
subject: [ 'Test' ] }
我希望能够使用 JSON.parse 将其解析为 JSON,但是因为键周围没有引号 + 键都在列表中,可以这样做吗?
我用两个正则表达式替换解决了同样的问题:
var header = inspect(Imap.parseHeader(buffer)).replace(/'/g,'"').replace(/([a-z]+)(: ?[\[\n])/g, '""');
var headerObj = JSON.parse(header);
第一个将单引号替换为双引号,第二个在字段名称周围添加引号。
只需var parsed_header = Imap.parseHeader(buffer)
,您就会得到一个对象。因此,要获取 "from" 字段,您只需使用 parsed_header.from