【问题标题】:Formatting JSON for email body为电子邮件正文格式化 JSON
【发布时间】:2016-02-23 08:20:35
【问题描述】:

我尝试使用以下格式将 JSON 插入到 Outlook/电子邮件客户端的正文中

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>";
        }

【问题讨论】:

  • 您能描述一下您的尝试吗?
  • 您能告诉我们您到目前为止所做的事情吗?
  • @k0pernikus 你用了 11 秒 :)
  • @Oleander 本来会更快,但出于某种原因“你尝试了什么?”是不允许的评论内容;)
  • @user2727195 为什么不根据您的规格进行更改?你快完成了。

标签: javascript json regex pretty-print


【解决方案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 中的附加参数来完成的

【讨论】:

    【解决方案2】:

    来吧

    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/

    【讨论】:

    • 请解释为什么 json.hasOwnProperty
    • hasOwnProperty() 是一种检查被检查属性是否属于对象的方法。详情见此链接:brianflove.com/2013/09/05/javascripts-hasownproperty-method
    • 但是JSON对象总是有自己的属性,想知道什么时候JSON对象没有自己的属性
    • 您可以实例化“Object”的 2 个实例,并将 property3 添加到“ObjectA”,而没有添加到 ObjectB。这些将是同一 Object 的两个实例,但 ObjectA 现在已扩展为具有 property3 而 ObjectB 没有。为什么?在编程过程中会出现十亿个原因,您只需要在您达到大师级别的过程中遇到它们。
    猜你喜欢
    • 2011-06-02
    • 2020-05-09
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    相关资源
    最近更新 更多