Tengo una matriz que contiene datos de búfer como se muestra a continuación
[{ Buffer_Data: <Buffer b5 eb 2d> },{ Buffer_Data: <Buffer b5 eb 2d> },{ Buffer_Data: <Buffer b5 eb 2d> },{ Buffer_Data: <Buffer b5 eb 2d> }]Quiero que se agreguen comillas dobles tanto a la clave como a los valores y el resultado debería ser el siguiente.
[{ "Buffer_Data": "<Buffer b5 eb 2d>" },{ "Buffer_Data": "<Buffer b5 eb 2d>" },{ "Buffer_Data": "<Buffer b5 eb 2d>" },{ "Buffer_Data": "<Buffer b5 eb 2d>" }]Probé JSON.stringify pero me está dando los datos del búfer en un formato no válido. ¿Cómo puedo convertir esto en una matriz con comillas dobles? Por favor ayuda
Aquí está mi código
stream = fs.createReadStream('files/uploaded_files/' + req.body.fileName); var bufferdata = []; stream.on('data', async function (chunk) { var obj = {}; obj.Buffer_Data = Buffer.from(chunk.toString('binary'), 'base64'); bufferdata.push(obj) }); stream.on('end', async function(){ var new_buffer_data = JSON.stringify(bufferdata) // This is giving invalid value })Código que probé
stream = fs.createReadStream('files/uploaded_files/' + req.body.fileName); var bufferdata = []; stream.on('data', async function (chunk) { var bytes = chunk.map(str => parseInt(str, 16)); const buf = Buffer.from(bytes); var obj = {}; obj.Buffer_Data = buf; buffer.push(obj) }); stream.on('end', async function(){ const stringified = JSON.stringify(buffer.map(obj => ({Buffer_Data: stringifyBuffer(obj.Buffer_Data)}))); console.log(stringified); })Puede encadenar la matriz de objetos con datos de Buffer en el formato que especificó usando este método:
./so-71389714.mjs :
import {Buffer} from 'buffer'; function stringifyBuffer (buf) { let result = '<Buffer'; for (const byte of buf) { result += ` ${byte.toString(16)}`; } result += '>'; return result; } const bytes = ['b5', 'eb', '2d'].map(str => parseInt(str, 16)); const buf = Buffer.from(bytes); const obj = {Buffer_Data: buf}; // This is the array in your question const array = [obj, obj, obj, obj]; const stringified = JSON.stringify(array.map(obj => ({Buffer_Data: stringifyBuffer(obj.Buffer_Data)}))); console.log(stringified); $ node so-71389714.mjs [{"Buffer_Data":"<Buffer b5 eb 2d>"},{"Buffer_Data":"<Buffer b5 eb 2d>"},{"Buffer_Data":"<Buffer b5 eb 2d>"},{"Buffer_Data":"<Buffer b5 eb 2d>"}]