该JSON格式本身不支持二进制数据.必须对二进制数据进行转义,以便可以将其放入JSON中的字符串元素(即使用反斜杠转义的双引号中的零个或多个Unicode字符).
转义二进制数据的一个明显方法是使用Base64.但是,Base64具有很高的处理开销.它还将3个字节扩展为4个字符,从而使数据量增加了大约33%.
一个用例是CDMI云存储API规范的v0.8草案.您可以使用JSON通过REST-Webservice创建数据对象,例如
PUT /MyContainer/BinaryObject HTTP/1.1
Host: cloud.example.com
Accept: application/vnd.org.snia.cdmi.dataobject+json
Content-Type: application/vnd.org.snia.cdmi.dataobject+json
X-CDMI-Specification-Version: 1.0
{
"mimetype" : "application/octet-stream",
"metadata" : [ ],
"value" : "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=",
}
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法和标准方法将二进制数据编码为JSON字符串?
我有一个非常简单的网站(实际上是单页),有一个输入字段和一个按钮.
我需要存储用户在服务器端某处提交的数据.完美的方式可以是简单的文本文件,并在每次单击按钮后附加新行.日志文件也可以.
据我所知,JavaScript本身是不可能的.我正在寻找最简单的解决方案,最好是没有服务器端编程(但如果需要,它应该尽可能简单并且开箱即用).如果可以提供帮助,我可以使用一些辅助服务.
请帮忙.
提前致谢.
UPD.只想重新解释主要问题.我真的不需要在服务器端存储一些东西.我需要收集用户的一些意见.可能吗?如果它只是发送到我的电子邮件也可以.