将Java字节数组转换为Javascript类型化数组

5

我正在尝试通过Websocket二进制协议将一些原始数据从Java Servlet发送到JavaScript。我已经阅读了有关JavaScript的字节缓冲区、类型化数组和数据视图的所有内容,但我仍然觉得我没有完全理解。

我的问题是如何将一个8字节数组转换为JavaScript数字?

我有以下字节数组,应该表示这个双精度值-1.4960627518157586E23。

0 = -60
1 = -65
2 = -82
3 = 44
4 = 36
5 = 69
6 = -96
7 = 64

请问有人可以帮我把Java中的字节数据序列化为JavaScript类型吗?非常感谢。


你真的需要它是二进制的吗?用JSON太慢了吗? - bhspencer
你能展示一下你的JS客户端代码吗? - bhspencer
我猜如果您使用JSON格式发送数据,您肯定会省去序列化和解析的麻烦。 - Little Santi
1个回答

0

Javascript中的读取

在Javascript中读取二进制数据需要一些努力,但有人方便地编写了一段代码片段来帮助解决这个问题:http://jsfromhell.com/classes/binary-parser

我们可以像这样使用它:

var parser = BinaryParser(true);
var outputVal = parser.toDouble([-60, -65, -82, 44, 36, 69, -96, 64]);

Java中的读取操作

如果您在Java中接收数据,可以使用java.io.DataInputStream从流中读取原始值,如下所示:

byte[] dataArray = new byte[] {-60, -65, -82, 44, 36, 69, -96, 64};
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(dataArray));

double val = stream.readDouble();
out.println(val); // -1.4960627518157586E23

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接