我希望人们能够从网页中抓取一部分JSON并通过电子邮件发送给某人。这似乎是不可能的,因为电子邮件系统(例如gmail)会破坏这些行,可能会破坏中间的字符串常量...这使得无法解析回来。
我正在寻找一种转换JSON的最小方法,使其在电子邮件有效负载中仍然可读且可识别,然后进行同样最小的转换。这意味着像UUENCODING这样的东西不合适;我希望有可能看到它然后去看看那个JSON ......大部分时间。"
似乎我对抗了一点墙。我可以假设线条允许多长时间并放入某种换行符:
{
foo: [10 20],
bar: "some really long string that the email would break\
and we handle the discontinuity with backslash or something"
}
(更新:更好的可能是this trick,它将字符串作为一个字符串数组传递,然后在收到时加入,但这比我希望的更具侵略性<) / em>的
如果我不想设置已知的行长限制,我必须假设空格不重要。也许在发送方的一些后处理步骤查看字符串内部并用\x20
替换空格,并在读取方面的一些预处理步骤将字符串外的所有文字空间折叠到单个空格和所有字符串内的字面空间完全消失了? : - /
(我的数据集中字符串中唯一的空格是空格和换行符。)
总的来说,我想知道是否有人能够想到一个简单的一般性黑客攻击,让JSON消息继续在一个媒体中工作,这种媒体只是在它感觉到的时候会抛出换行符。代码越少越好!
答案 0 :(得分:5)
如果您的电子邮件客户端可以执行html电子邮件,则可以将代码包装在<pre></pre>
标记
将html电子邮件发送到json的gmail帐户时似乎有效。 json文本看起来会破坏但是当你去json复制并粘贴到编辑器甚至控制台时它会正确粘贴并可以执行。当我使用Chrome和GMail作为电子邮件客户端进行测试时,它做得最少。
使用<pre></pre>
标记通过电子邮件发送
或者你可以将json包装在<div></div>
或任何标签中,并设置一个内联样式white-space:nowrap;
,它将整个json放在一条不间断的行上。
使用white-space:nowrap
通过电子邮件发送
当然这取决于电子邮件客户端支持html和/或css的功能。