如何从对象解码arrayBuffer

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从对象解码arrayBuffer相关的知识,希望对你有一定的参考价值。

我已经尝试了很多事情来解码由{"foo":"bar"}之类的对象组成的arrayBuffer这是arrayBuffer:

ArrayBuffer {
  [Uint8Contents]: <5b 6f 62 6a 65 63 74 20 4f 62 6a 65 63 74 5d>,
  byteLength: 15
}

使用最简单的方法作为TextDecoder,它只是返回[object Object],所以问题可能出在编码器上吗?我没有想法...我正在使用此客户端的send方法发送数据:https://www.npmjs.com/package/websocket

所以,如何解码arrayBuffer?谢谢

答案

JSON.stringify,然后再将其发送到客户端。您的解码很好。它在服务器端未正确序列化。 Object.toString()给您该字符串。

如果要以二进制形式发送对象,则需要查找二进制序列化器。但是,除非您要处理的是非常严重的负载或需要优化的特殊需求,否则我将避免这样做的麻烦。数据必须在某个时候进行序列化,然后在另一端进行反序列化。对于普通的API,是否需要二进制序列化是非常可疑的]

以上是关于如何从对象解码arrayBuffer的主要内容,如果未能解决你的问题,请参考以下文章

在单元测试中模拟 UserDefaults 对象返回 _ArrayBuffer

如何将带有 ArrayBuffer 的 JSON 对象发送到 websocket?

将 JS 对象转换为 ArrayBuffer 以向/从 Web Worker 传输等于瓶颈

如何在打字稿中解码二进制数据字符串

JavaScript中的ArrayBuffer该如何理解呢?

如何从 Blob 转到 ArrayBuffer