gtd*_*gtd 5 ruby json smtp email-headers sendgrid
所以我生成了一个可能很长的 JSON 字符串,用于 Sendgrid 的 SMTP API。因为它是一个 SMTP 标头,所以它应该有一个最大行长度(推荐 72,但绝对不超过 1000)。末尾的文档中描述了一种简单的解决方案:
http://docs.sendgrid.com/documentation/api/smtp-api/developers-guide/
他们建议这样做:
$js =~ s/(.{1,72})(\s)/$1\n /g;
Run Code Online (Sandbox Code Playgroud)
但我不喜欢那样,因为它可能会在空格有意义的字符串中拆分。此外,当空间很少且距离很远时,性能似乎非常糟糕。
现在我正在使用 Ruby,我可以执行以下操作:
JSON.generate(@hash, options)
Run Code Online (Sandbox Code Playgroud)
在http://flori.github.com/json/doc/classes/JSON.html#method-i-generate 中记录的选项提供了不同的格式选项。但是这些都没有给我我想要的,这是每隔一段时间带有换行符的简洁 JSON。
有任何想法吗?
options = {
indent:'',
space:"\n",
space_before:"\n",
object_nl:"\n",
array_nl:"\n",
}
Run Code Online (Sandbox Code Playgroud)
这会在每个位置放置一个换行符,这样做不会影响 JSON 的语义,并禁用任何缩进。
它并不简洁,也不人性化,但换行符只是 1 个额外的字符,因此拥有大量换行符不会以任何实际方式影响性能。它还为您提供尽可能短的行,而不影响字符串的内容。您可能应该检查这些以确保它们都在长度限制之内。
| 归档时间: |
|
| 查看次数: |
1237 次 |
| 最近记录: |