Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot get the value of an ArrayBuffer Object in Javascript

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?

like image 543
Sven0567 Avatar asked Dec 06 '22 10:12

Sven0567


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()
like image 57
Endless Avatar answered Dec 07 '22 23:12

Endless


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/

like image 35
Alexandre Elshobokshy Avatar answered Dec 07 '22 23:12

Alexandre Elshobokshy