我正在从C#代码序列化一个字节数组
byte[] sample = new byte[] {0,0};
使用ServiceStack(json)。 json中的结果值为“AAA =”。
如何对此进行反序列化以获取包含两个元素(0,0)而非“AAA =”的数组?
我是javascript初学者,所以请原谅我的问题。也许ServiceStack正在使用某种我不知道的编码。如果是,如何正确解码?
答案 0 :(得分:3)
ServiceStack正在将byte[]
序列化为Base64字符串。您可以在JavaScript中使用此方法将字符串byte[]
恢复:
function getByteArray(str) {
var decoded = atob(str);
var i, il = decoded.length;
var array = new Uint8Array(il);
for (i = 0; i < il; ++i) {
array[i] = decoded.charCodeAt(i);
}
return array;
}
var byteArray = getByteArray("AAA=");
支持旧版浏览器处理字节不是很好。 Internet Explorer实际上只启动了handling this in version 10。
使用bytes
并不是真正的初级JavaScript。我不确定您打算序列化哪些数据,但除非您使用html canvas
上的图像,否则它很少是您想要的数据类型。毕竟当它转换为base64时,远离光线传输。如果您只是发送标记,请使用bool[]
或int[]
。