【发布时间】:2016-10-23 04:07:18
【问题描述】:
我正在尝试创建 ArrayBuffer 对象的视图以便对其进行 JSON 化。
var data = { data: new Uint8Array(arrayBuffer) }
var json = JSON.stringify(data)
似乎ArrayBuffer 的大小即使是最小的Uint8Array 也无关紧要。到目前为止我没有收到任何 RangeError :) 如果是,我如何决定使用哪个类型化数组?
【问题讨论】:
-
您根据存储在缓冲区中的数据做出决定,或者更确切地说,根据您对该数据的解释来决定。
-
另外,an
Uint8Array不是一个 8 位数组,它是一个无符号 8 位整数数组。它可以有任何长度。从与Uint16Array相同的ArrayBuffer创建的Uint8Array的长度将是Uint16Array的两倍,因为ArrayBuffer中的每个字节都将作为Uint8Array的一个元素“放置”,而对于Uint16Array每对字节都将“成为”数组中的一个元素。 -
@SergiuParaschiv 您应该将其发布为答案。你解释得很好。
-
@SergiuParaschiv 感谢您的评论。我现在明白差异与数据格式有关。何时将 Uint16Array 用于 Uint8Array?可以举个例子让我理解吗?
-
我现在正在寻找更完整的答案:)
标签: javascript json arraybuffer typed-arrays