Java字节数组到Javascript类型数组
Posted
技术标签:
【中文标题】Java字节数组到Javascript类型数组【英文标题】:Java byte array to Javascript typed array 【发布时间】:2015-10-15 00:25:32 【问题描述】:我正在尝试通过 Websocket binaryType 协议将一些原始数据从 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 是不是太慢了? 你能告诉我们你的JS客户端代码吗? 我猜如果你使用JSON格式发送数据,你肯定会省去序列化和解析的麻烦。 【参考方案1】:用 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
【讨论】:
以上是关于Java字节数组到Javascript类型数组的主要内容,如果未能解决你的问题,请参考以下文章