Javascript 在ArrayBuffer中存储json对象
要在Javascript 在ArrayBuffer中存储json对象,javascript,arraybuffer,Javascript,Arraybuffer,要在ArrayBuffer function stringToUint(string) { var string = btoa(unescape(encodeURIComponent(string))), charList = string.split(''), uintArray = []; for (var i = 0; i < charList.length; i++) { uintArray.push(charList
ArrayBuffer
function stringToUint(string) {
var string = btoa(unescape(encodeURIComponent(string))),
charList = string.split(''),
uintArray = [];
for (var i = 0; i < charList.length; i++) {
uintArray.push(charList[i].charCodeAt(0));
}
return new Uint8Array(uintArray);
}
function uintToString(uintArray) {
var encodedString = String.fromCharCode.apply(null, uintArray),
decodedString = decodeURIComponent(escape(atob(encodedString)));
return decodedString;
}
var str = {'x':'aaaa'},
enc = stringToUint(str),
dec = uintToString(enc);
console.log(dec.x);
函数stringToUint(字符串){
var string=btoa(unescape(encodeURIComponent(string)),
charList=string.split(“”),
uintArray=[];
对于(var i=0;i
console.log(十二月十日)代码>正在打印“未定义”。我做错了吗?
这里是jsfiddle为了让它能够正常工作,在stringToUint
函数调用JSON.stringify
中
function stringToUint(string) {
var string = btoa(unescape(JSON.stringify(string))),
charList = string.split(''),
uintArray = [];
for (var i = 0; i < charList.length; i++) {
uintArray.push(charList[i].charCodeAt(0));
}
return new Uint8Array(uintArray);
}
function uintToString(uintArray) {
var encodedString = String.fromCharCode.apply(null, uintArray),
decodedString = decodeURIComponent(escape(atob(encodedString)));
return decodedString;
}
var str = {'x':'aaaa'},
enc = stringToUint(str),
dec = uintToString(enc);
console.log(dec);
函数stringToUint(字符串){
var string=btoa(unescape(JSON.stringify(string)),
charList=string.split(“”),
uintArray=[];
对于(var i=0;i
因为stringToUint
需要一个字符串,向它传递一个对象将{'x':'aaaa'}
转换为[object object object]
并返回表示该对象的数组,因此在调用uintotString
时,数组将转换回[object object object]
简单的解决方案是在将对象传递给函数之前使用JSON.stringify
,然后使用JSON.parse
转换为原始对象
函数stringToUint(字符串){
var string=btoa(unescape(encodeURIComponent(string)),
charList=string.split(“”),
uintArray=[];
对于(var i=0;i 书面文件(12月x日)代码>此代码用于stringToUint
的速度约为40%
函数stringToUint(字符串){
const str=btoa(unescape(encodeURIComponent(字符串)))
const uintArray=[]
常量len=str.length
设i=-1
而(++i
如何使用JSON.parse从Utils.stringToUint(JSON.stringify(str))
获取JSON
function stringToUint(string) {
const str = btoa(unescape(encodeURIComponent(string)))
const uintArray = []
const len = str.length
let i = -1
while (++i < len) {
uintArray[i] = str.charCodeAt(i)
}
return new Uint8Array(uintArray);
}