如何保存ArrayBuffer? [英] How to save ArrayBuffer?

查看:561
本文介绍了如何保存ArrayBuffer?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在json文件中保存ArrayBuffer?我使用electron-config,但是在config.json中我找到了{}。我尝试转换(代码)ArrayBuffer到字符串,但后来我无法将字符串转换为ArrayBuffer。

How to save an ArrayBuffer in json file? I use electron-config for this, but in config.json I found "{}". I try convert (code) ArrayBuffer to string, but then I can't convert string to 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;
}


推荐答案

中没有ArrayBuffers JSON格式(只有字符串,数字,布尔值, null ,对象和数组)所以如果你想在JSON中保存一个ArrayBuffer那么你必须在其中一个中表示它那些类型(可能是一个字符串或一组数字)。

There are no ArrayBuffers in the JSON format (only strings, numbers, booleans, null, objects and arrays) so if you want to save an ArrayBuffer in JSON then you'll have to represent it in one of those types (probably a string or an array of numbers).

然后,当你读到JSON时,你必须将它转换回ArrayBuffer,逆转你的转换之前做过。

Then when you read the JSON you will have to convert it back into an ArrayBuffer, reversing the transformation that you did before.

这篇关于如何保存ArrayBuffer?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆