JavaScript Program to Convert Byte Array to JSON

In this article, we are going to learn about the conversion of a Byte Array into JSON. Converting a byte array to JSON means transforming a sequence of bytes into a structured JSON format, often involving decoding bytes to a text string and then parsing it into JSON data.

Example:

Input : [71, 101, 101, 107, 115, 102, 111, 114, 71, 101, 101, 107, 115]
Output: w3wiki

There are different approaches to Convert Byte Array to JSON. Let’s discuss each of them one by one:

Table of Content

  • Using TextDecoder
  • Using String.fromCharCode() Method
  • Using for loop
  • Using Array.map and JSON.parse

We will explore all the above methods along with their basic implementation with the help of examples.

Using TextDecoder

TextDecoder is a JavaScript object that converts byte data, like those in byte arrays, into strings using specified character encodings, aiding tasks such as parsing or displaying text-based content.

Syntax:

let textDecoder = new TextDecoder();
let result = textDecoder.decode(arr1);

Example: In this example, the TextDecoder object is used to decode the byte array into a string,

Javascript
let arr1 = new Uint8Array([71, 101, 101, 107, 115]);
let textDecoder = new TextDecoder();
let result = textDecoder.decode(arr1);

console.log(result); 

Output
Beginner

Using String.fromCharCode() Method

The JavaScript String.fromCharCode() method is used to create a string from the given sequence of UTF-16 code units.

Syntax:

String.fromCharCode(n1, n2, ..., nX)

Example: In this example we are using above-mentioned method.

Javascript
let arr1 = new Uint8Array(
    [71, 101, 101, 107, 115,
        102, 111, 114, 71, 101,
        101, 107, 115]);
let result = String.fromCharCode.apply(null, arr1);

console.log(result);

Output
w3wiki

Using for loop

In this approach,Loop iterates through a byte array. Each byte is converted using String.fromCharCode() and concatenated to form a string, suitable for byte-to-string conversions,

Syntax:

for ( variable of iterableObjectName) {
. . .
};

Example: In this example we are using the above-explained approach.

Javascript
let arr1 = new Uint8Array([71, 101, 101, 107, 115]);
let result = '';

for (let i = 0; i < arr1.length; i++) {
    result += String.fromCharCode(arr1[i]);
}

console.log(result); 

Output
Beginner

Using Array.map and JSON.parse

Using Array.map and JSON.parse, the function converts each byte in the byte array to its corresponding character, joins these characters into a string, and then parses the string into a JSON object. This effectively transforms the byte array into a JSON format.

Example:

JavaScript
function byteArrayToJson(byteArray) {
    let jsonString = Array.from(byteArray).map(byte => String.fromCharCode(byte)).join('');
    return JSON.parse(jsonString);
}


let byteArray = new TextEncoder().encode('{"name":"John","age":30}');
console.log(byteArrayToJson(byteArray)); // {name: "John", age: 30}

Output
{ name: 'John', age: 30 }