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: GeeksforGeeks
There are different approaches to Convert Byte Array to JSON. Let’s discuss each of them one by one:
Table of Content
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,
let arr1 = new Uint8Array([71, 101, 101, 107, 115]);
let textDecoder = new TextDecoder();
let result = textDecoder.decode(arr1);
console.log(result);
Output
Geeks
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.
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
GeeksforGeeks
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.
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
Geeks
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:
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 }
Using reduce()
Using reduce() and String.fromCharCode to convert a byte array to JSON involves iterating through the byte array to construct a JSON string, which is then parsed into a JSON object. This method leverages array reduction for concise code.
Example:
function byteArrayToJSON(byteArray) {
let jsonString = byteArray.reduce((acc, byte) =>
acc + String.fromCharCode(byte), '');
return JSON.parse(jsonString);
}
let byteArray = [123, 34, 110, 97, 109, 101, 34, 58, 34, 74, 111, 104, 110, 34, 125];
console.log(byteArrayToJSON(byteArray));
Output
{ name: 'John' }