我正在从 C# 代码序列化一个字节数组
byte[] sample = new byte[] {0,0};
使用 ServiceStack (json)。 json 中的结果值为"AAA="。
如何反序列化它以获得包含两个元素 (0,0) 而不是 "AAA="?
的数组?我是 javascript 初学者,所以请原谅我的问题。也许 ServiceStack 正在使用某种我不知道的编码。如果是,如何正确解码?
最佳答案
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[]
。
关于c# - ServiceStack 序列化 byte[]。如何在javascript中反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21366393/