【问题标题】:NodeJS: retrieving an array which is wrapped in a stringNodeJS:检索包含在字符串中的数组
【发布时间】:2018-10-05 17:17:05
【问题描述】:

我目前正在尝试将我从 API 返回的邮件对象 () 保存到我们的 Mongo 数据库中。 这对于所有传递的值都可以接受“附件”字段。附件应该是一个对象数组,但它被包裹在一个字符串中。我现在的问题是:如何从该字符串中取出数组?

我从 POST 请求中获得的 req.body 示例:

{ 时间戳:'1538728432',令牌: '0a1336769443d5a593d0ef7c1c817d29ef64ba422fc3cc45f1',签名: 'c44c67660f0ad97bbb5ece92c733302d4511d4607b5787ae6aa8f2203b0e2e3e',
域名:'karaton.uk',来自:'',
'X-信封-从':'',到:'', 'Dkim 签名': 'v=1;一个=rsa-sha256; c=放松/放松;\td=karaton.be; s=20140924;\th=content-type:subject:reply-to:from:to:message-id:mime-version:date:from;\tbh=Xfm+LiX4NVMKTRaQB7gNUXf6z8yVjUqn23aenMee/q4=;\tb=JEslFgXEsO3/kW3khZFF6F4HEo9Mwx+ oXJH5DGsXALaGa98ki9o5tLddmEcClqhZ8IJLR0+vrMJ3x\t zU5ThqHNElHpt6VE9MX5ZSHJHnI2kiEXq7MN5BUWfStlS2stYwooZcuZKOkbZXRaUHODewUQbhvZQD\t 5/eA5RltbAOqwIaA=',来自:'','用户代理': 'One.com webmail 27.8.5', 日期: 'Fri, 05 Oct 2018 10:21:49 +0200',
'消息 ID': '',
'Mime-版本':'1.0',收到:['来自 mailrelay4-2.pub.mailoutpod1-cph3.one.com (mailrelay4-2.pub.mailoutpod1-cph3.one.com [46.30.212.3]) mxa.mailgun.org,ESMTP id 为 5bb71f1f.7f030c2a1580-smtp-in-n02;周五, 2018 年 10 月 5 日 08:21:51 -0000 (UTC)', '来自 onecom-webmail2 94.143.189.242(未知 [46.30.211.130])\tby mailrelay4.pub.mailoutpod1-cph3.one.com(哈龙) 与 ESMTPSA\tid b4d6415f-c877-11e8-86b7-d0431ea8bb10;\tFri, 05 Oct 2018 08:21:49 +0000 (UTC)'],'X-Halone-Cookie': 'c9ea0f7e80128b5bfaf5bf8d8aca6fced5bcb162',主题:'2 附件','消息网址': 'https://se.api.mailgun.net/v3/domains/karaton.uk/messages/eyJwIjpmYWxzZSwiayI6IjEyNzQ1ZmViLTM4OTItNDdkZC04MTJiLWJlYzU4ZjNjYTI4MCIsInMiOiI1NDE1ODQ0ZjIyIiwiYyI6InRhbmtiIn0=', '回复':'',收件人:'tho@karaton.uk',
发件人:'thomas.l@karaton.be','X-Mailgun-Incoming':'是',
'message-headers': '[["X-Mailgun-Incoming", "Yes"], ["X-Envelope-From", ""], ["Received", "from mailrelay4-2.pub.mailoutpod1-cph3.one.com (mailrelay4-2.pub.mailoutpod1-cph3.one.com [46.30.212.3]) mxa.mailgun.org,ESMTP id 为 5bb71f1f.7f030c2a1580-smtp-in-n02;周五, 2018 年 10 月 5 日 08:21:51 -0000 (UTC)"], ["Dkim-Signature", "v=1; 一个=rsa-sha256; c=放松/放松;\td=karaton.be; s=20140924;\th=content-type:subject:reply-to:from:to:message-id:mime-version:date:from;\tbh=Xfm+LiX4NVMKTRaQB7gNUXf6z8yVjUqn23aenMee/q4=;\tb=JEslFgXEsO3/kW3khZFF6F4HEo9Mwx+ oXJH5DGsXALaGa98ki9o5tLddmEcClqhZ8IJLR0+vrMJ3x\t zU5ThqHNElHpt6VE9MX5ZSHJHnI2kiEXq7MN5BUWfStlS2stYwooZcuZKOkbZXRaUHODewUQbhvZQD\t 5/eA5RltbAOqwIaA="], ["X-Halone-Cookie", “c9ea0f7e80128b5bfaf5bf8d8aca6fced5bcb162”],[“X-Halone-Id”, "b4d6415f-c877-11e8-86b7-d0431ea8bb10"], ["收到", "来自 onecom-webmail2 94.143.189.242(未知 [46.30.211.130])\tby 带有 ESMTPSA\tid 的 mailrelay4.pub.mailoutpod1-cph3.one.com (Halon) b4d6415f-c877-11e8-86b7-d0431ea8bb10;\t2018 年 10 月 5 日星期五 08:21:49 +0000 (UTC)"], ["X-Originating-Ip", "94.143.189.242"], ["User-Agent", "One.com webmail 27.8.5"], ["Date", "Fri, 2018 年 10 月 5 日 10:21:49 +0200"], ["Mime-Version", "1.0"], ["Message-Id", ""], ["To", ""], [“发件人”,“”],[“回复”, ""], ["主题", "2 个附件"], [“内容类型”,“多部分/混合; 边界=\"---------8210-1538727709180-1\""]]', 'X-Halone-Id': 'b4d6415f-c877-11e8-86b7-d0431ea8bb10','内容类型': '多部分/混合;边界="---------8210-1538727709180-1"',
“X-Originating-Ip”:“94.143.189.242”,主题:“2 个附件”,
附件:'[{“url”: "https://se.api.mailgun.net/v3/domains/karaton.uk/messages/eyJwIjpmYWxzZSwiayI6IjEyNzQ1ZmViLTM4OTItNDdkZC04MTJiLWJlYzU4ZjNjYTI4MCIsInMiOiI1NDE1ODQ0ZjIyIiwiYyI6InRhbmtiIn0=/attachments/0", “内容类型”:“应用程序/pdf”,“名称”:“WOORDZOEKER maken _ Online _ 遇到 oplossing2 copy.pdf", "size": 53398}, {"url": "https://se.api.mailgun.net/v3/domains/karaton.uk/messages/eyJwIjpmYWxzZSwiayI6IjEyNzQ1ZmViLTM4OTItNDdkZC04MTJiLWJlYzU4ZjNjYTI4MCIsInMiOiI1NDE1ODQ0ZjIyIiwiYyI6InRhbmtiIn0=/attachments/1", “内容类型”: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", “名称”:“Geschatte uren.xlsx”,“尺寸”:44210}]','body-plain': '\r\n\r\n', 'body-html': '
\r\n', 'stripped-html': '
\n', 'stripped-text': '', 'stripped-signature': '' }

【问题讨论】:

  • JSON.parse(req.body.attachments)

标签: javascript node.js express mailgun


【解决方案1】:

使用内置的JSON.parse() 函数,它会返回一个对象数组。它与JSON.stringify() 相反,后者则相反。所以,基本上, JSON.parse(req.body.attachments) 应该可以解决问题。

【讨论】:

    【解决方案2】:

    JSON.parse 应该可以解决问题

    const response = {
      timestamp: '1538728432',
      token: '0a1336769443d5a593d0ef7c1c817d29ef64ba422fc3cc45f1',
      Subject: '2 attachments',
      attachments: '[{"url": "https://se.api.mailgun.net/v3/domains/karaton.uk/messages/eyJwIjpmYWxzZSwiayI6IjEyNzQ1ZmViLTM4OTItNDdkZC04MTJiLWJlYzU4ZjNjYTI4MCIsInMiOiI1NDE1ODQ0ZjIyIiwiYyI6InRhbmtiIn0=/attachments/0", "content-type": "application/pdf", "name": "WOORDZOEKER maken _ Online _ Met oplossing2 copy.pdf", "size": 53398}, {"url": "https://se.api.mailgun.net/v3/domains/karaton.uk/messages/eyJwIjpmYWxzZSwiayI6IjEyNzQ1ZmViLTM4OTItNDdkZC04MTJiLWJlYzU4ZjNjYTI4MCIsInMiOiI1NDE1ODQ0ZjIyIiwiYyI6InRhbmtiIn0=/attachments/1", "content-type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "name": "Geschatte uren.xlsx", "size": 44210}]'
    }
    
    const attachments = JSON.parse(response.attachments);
    console.log(attachments[0]);
    console.log(attachments[1]);

    参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

    【讨论】:

      猜你喜欢
      • 2016-02-03
      • 2021-08-06
      • 1970-01-01
      • 2023-03-31
      • 2013-08-16
      • 2021-06-10
      • 2021-09-27
      • 1970-01-01
      • 2021-12-14
      相关资源
      最近更新 更多