所以我正在生成一个可能冗长的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)
其中,选项提供了http://flori.github.com/json/doc/classes/JSON.html#method-i-generate中记录的不同格式选项。但是这些都没有给我我想要的东西,这是每隔一段时间用简化线条简洁的JSON。
有什么想法吗?
答案 0 :(得分:1)
options = {
indent:'',
space:"\n",
space_before:"\n",
object_nl:"\n",
array_nl:"\n",
}
这会在每个地方添加换行符,这样做不会影响JSON的语义,并禁用任何缩进。
这不是简洁而不是人性化,但换行只是一个额外的角色,所以拥有很多它们不会以任何真实的方式影响性能。它还为您提供尽可能短的行,而不会影响字符串的内容。您应该检查这些以确保它们都在长度限制之内。