Konversi JSON ke Byte Array dalam JavaScript
Dalam pengembangan web dan aplikasi, kita seringkali perlu untuk mengubah data JSON ke format byte array untuk keperluan seperti transfer data, penyimpanan, atau pemrosesan data biner. JavaScript menyediakan beberapa cara untuk melakukan konversi ini. Berikut adalah beberapa metode yang umum digunakan:
1. Menggunakan TextEncoder
TextEncoder
adalah API yang memungkinkan kita untuk mengkonversi string Unicode ke byte array. Berikut adalah contoh penggunaan TextEncoder
untuk mengkonversi JSON ke byte array:
const jsonString = JSON.stringify({ name: "John Doe", age: 30 });
const encoder = new TextEncoder();
const byteArray = encoder.encode(jsonString);
console.log(byteArray); // Output: Uint8Array [123, 34, 110, 97, 109, 101, 34, 58, 34, 74, 111, 104, 110, 32, 68, 111, 101, 34, 44, 34, 97, 103, 101, 34, 58, 51, 48, 125]
Penjelasan:
JSON.stringify()
mengubah objek JSON menjadi string.TextEncoder()
membuat objekTextEncoder
yang digunakan untuk mengkonversi string ke byte array.encode()
mengembalikan byte array yang berisi data JSON dalam bentuk byte.
2. Menggunakan Uint8Array
Uint8Array
adalah tipe data JavaScript yang merepresentasikan array byte unsigned 8-bit. Kita bisa menggunakan Uint8Array
untuk membuat byte array dan mengisi dengan data JSON.
const jsonString = JSON.stringify({ name: "John Doe", age: 30 });
const byteArray = new Uint8Array(jsonString.length);
for (let i = 0; i < jsonString.length; i++) {
byteArray[i] = jsonString.charCodeAt(i);
}
console.log(byteArray); // Output: Uint8Array [123, 34, 110, 97, 109, 101, 34, 58, 34, 74, 111, 104, 110, 32, 68, 111, 101, 34, 44, 34, 97, 103, 101, 34, 58, 51, 48, 125]
Penjelasan:
Uint8Array()
membuat byte array dengan ukuran yang sama dengan panjang string JSON.- Loop
for
digunakan untuk mengiterasi setiap karakter dalam string JSON dan mendapatkan kode ASCII karakter tersebut. - Kode ASCII diubah menjadi byte dan disimpan dalam byte array.
3. Menggunakan Library Eksternal
Beberapa library JavaScript eksternal seperti js-base64
atau buffer
dapat membantu dalam melakukan konversi JSON ke byte array dengan lebih mudah. Berikut adalah contoh penggunaan js-base64
:
const jsonString = JSON.stringify({ name: "John Doe", age: 30 });
const byteArray = new Uint8Array(atob(jsonString).split('').map(char => char.charCodeAt(0)));
console.log(byteArray); // Output: Uint8Array [123, 34, 110, 97, 109, 101, 34, 58, 34, 74, 111, 104, 110, 32, 68, 111, 101, 34, 44, 34, 97, 103, 101, 34, 58, 51, 48, 125]
Penjelasan:
atob()
mengonversi string base64 ke string biasa.split('')
memecah string menjadi array karakter.map()
digunakan untuk iterasi setiap karakter dan mendapatkan kode ASCII-nya.Uint8Array()
membuat byte array dari kode ASCII karakter.
Pilihan Metode:
TextEncoder
adalah metode yang lebih sederhana dan mudah digunakan.Uint8Array
memberikan kontrol yang lebih besar atas proses konversi.- Library eksternal dapat menyediakan fungsionalitas tambahan dan lebih efisien.
Pilih metode yang sesuai dengan kebutuhan dan preferensi Anda.