使用最大行长度简洁地序列化JSON

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

有任何想法吗?

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

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

这不是简洁而不是人性化,但换行只是一个额外的角色,所以拥有很多它们不会以任何真实的方式影响性能。 它还为您提供尽可能短的行,而不会影响字符串的内容。 您应该检查这些以确保它们都在长度限制之内。

    Interesting Posts