5

所以我正在生成一个可能很长的 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;

但我不喜欢这样,因为它可能会在空格有意义的字符串中拆分。此外,当空间很少且相距甚远时,性能似乎非常糟糕。

现在我正在使用 Ruby,我可以执行以下操作:

JSON.generate(@hash, options)

其中 options 提供了http://flori.github.com/json/doc/classes/JSON.html#method-i-generate中记录的不同格式选项。但是这些都没有给我我想要的东西,即每隔一段时间带有换行符的简洁 JSON。

有任何想法吗?

4

1 回答 1

1
options = {
  indent:'',
  space:"\n",
  space_before:"\n",
  object_nl:"\n",
  array_nl:"\n",
}

这会在每个这样做不会影响 JSON 语义的地方添加一个换行符,并禁用任何缩进。

它不简洁也不友好,但换行符只是一个额外的字符,所以有很多不会真正影响性能。它还为您提供尽可能短的行,而不会影响字符串的内容。您可能应该检查这些以确保它们都在长度限制之下。

于 2013-01-19T20:28:08.467 回答