【发布时间】:2017-05-10 18:07:51
【问题描述】:
如何将 ArrayBuffer 保存在 json 文件中?我为此使用了电子配置,但在 config.json 中我找到了“{}”。我尝试将 (code) ArrayBuffer 转换为字符串,但我无法将字符串转换为 ArrayBuffer。
put: function(key, value) {
//value = { prop1: <ArrayBuffer>, prop2: <ArrayBuffer> }
if (key === undefined || value === undefined || key === null || value === null)
return;
var prop1Str,prop2Str;
prop1Str = this.ab2str(value.prop1);
prop2Str = this.ab2str(value.prop2);
var chValue = {prop1:prop1Str, prop2:prop2Str};
config.set(key,chValue);
console.log(value.prop1 === this.str2ab(config.get(key).prop1)); //===> FALSE
},
ab2str: function(buf) {
return String.fromCharCode.apply(null, new Uint8Array(buf));
},
str2ab: function(str) {
var buf = new ArrayBuffer(str.length);
var bufView = new Uint16Array(buf);
for (var i=0, strLen=str.length; i < strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}
【问题讨论】:
-
为什么需要将二进制数据存储在 JSON 中?您是否正在向服务器发送 HTTP 请求?如果是这样,您最好使用二进制友好的东西,例如 multipart/form-data 而不是 JSON。
-
@mscdex 不一定是 JSON 格式。我只想在PC上保存ArrayBuffer。
-
您的意思是将其保存到本地计算机磁盘上的文件中,还是将其保存在 浏览器 中,例如通过 LocalStorage(顺便说一句,它本身不支持二进制数据) ?
-
@mscdex 我的意思是把它保存在本地计算机的磁盘上(电子应用程序)。
标签: javascript json node.js electron