电子邮件正文的格式 JSON

Formatting JSON for email body

我 JSON 以下格式,我正尝试使用

插入到 outlook/email 客户的正文中
location.href = "mailto:" + "email@domain.com" + "?subject=" + "Notes" + "&body=" + JSON.stringify(data, null, 4);

给4个空格JSON.stringify(data, null, 4)

[
    {
        "page": "article_0_page_0",
        "note": "Note 1"
    },
    {
        "page": "article_0_page_1",
        "note": "Note 2"
    }
]

我想输出为

<b>article_0_page_0</b>\n\r
Note 1

<b>article_0_page_1</b>\n\r
Note 2

请提供任何正则表达式解决方案。

编辑:我的尝试

var str = "";
        for(var i=0; i<data.length; i++) {
            str += "<strong>" + data[i].page + "</strong><br>" + data[i].note + "<br><br>";
        }

给你

var json = [
    {
        "page": "article_0_page_0",
        "note": "Note 1"
    },
    {
        "page": "article_0_page_1",
        "note": "Note 2"
    }
];

var out = "";

for (var key in json) {
  if (json.hasOwnProperty(key)) {
      out += "<b>"+json[key].page+"</b>\r\n"+json[key].note+"\r\n\r\n";
  }
}

console.log(out);

此处示例:https://jsfiddle.net/q5r4gdcn/1/

如果你的结构是扁平化的,我认为上面的答案是可以的。

如果您想要一种更全面的电子邮件方法,我发现它非常有效。

const data = {...}
JSON.stringify( data, null, '&nbsp;' ).split( '\n' ).join( '<br>' );

这将转换成这样

const json = {
  "status": "ok",
   "config": {
     "gotIt": "yes",
     "transform": [
       null
     ]
   }
}

变成这样

{<br>&nbsp"status": "ok",<br>&nbsp"config": {<br>&nbsp&nbsp"gotIt": "yes",<br>&nbsp&nbsp"transform": [<br>&nbsp&nbsp&nbspnull<br>&nbsp&nbsp]<br>&nbsp}<br>}

电子邮件客户端将呈现如下

{
 "status": "ok",
 "config": {
  "gotIt": "yes",
  "transform": [
   null
  ]
 }
}

这是通过使用 JSON.stringify 中的附加参数来完成的,如果您想阅读更多关于这些参数的信息,我认为这些参数并不经常使用,这里是它们的 link