格式化电子邮件正文的JSON

问题描述 投票:0回答:2

我使用以下格式的JSON,我正试图插入到outlook / email客户端的正文中

location.href = "mailto:" + "[email protected]" + "?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>";
        }
javascript json regex pretty-print
2个回答
3
投票

你去吧

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/


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

© www.soinside.com 2019 - 2024. All rights reserved.