Cannot get the value of an ArrayBuffer Object in Javascript

Viewed 3558

I have an ArrayBuffer object that I need to be able to convert to String to JSON, but I can't get the value of the [Int8Array] out of the object, even though it is clearly there.

enter image description here

I've tried all variations on this, but they all return undefined

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"]);

How can I get all the Int8Array or UInt8Array values that are clearly available in the object?

2 Answers

You can use the textDecoder that accepts ArrayBuffer (as well as uint8array) without having to deal with Uint8array's:

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

if you want to get straight to json

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

You need to intiantiate a new Uint8Array to get their values, you can't access them directly using your ArrayBuffer instance.

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

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

Related