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;
}
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).Then when you read the JSON you will have to convert it back into an ArrayBuffer, reversing the transformation that you did before.
For saving to disk, you should be able to use the normal node APIs for writing something to disk. For example: