无法在 Javascript 中获取 ArrayBuffer 对象的值

Cannot get the value of an ArrayBuffer Object in Javascript

我有一个 ArrayBuffer 对象,我需要将其转换为 StringJSON,但我无法获得 [Int8Array] 的值在对象之外,即使它显然存在。

我已经尝试了所有变体,但它们都return未定义

console.log(result);//Returns the array buffer
//Following methods all return undefined?
console.log(result["[[Int8Array]]"]);
console.log(result[[[Int8Array]]]);
console.log(result[[["Int8Array"]]]);
console.log(result[Int8Array]);
console.log(result["Int8Array"]);

如何获取对象中明确可用的所有 Int8Array 或 UInt8Array 值?

您需要初始化一个 new Uint8Array 来获取它们的值,您无法使用您的 ArrayBuffer 实例直接访问它们。

var buf = new ArrayBuffer(8);
var int8view = new Uint8Array(buf);
console.log(int8view)

JSFiddle:https://jsfiddle.net/v8m7pjqb/

您可以使用接受 ArrayBuffer(以及 uint8array)的 textDecoder 而无需处理 Uint8array:

var str = new TextDecoder().decode(arrayBuffer)
var json = JSON.parse(str)

如果你想直接进入json

var json = await new Response(arrayBuffer).json()