簡體   English   中英

如何為 javascript 中的數組的鍵和值添加雙引號

[英]How to add double quotes to both keys and values for an array in javascript

我有一個包含緩沖區數據的數組,如下所示

 [{ Buffer_Data: <Buffer b5 eb 2d> },{ Buffer_Data: <Buffer b5 eb 2d> },{ Buffer_Data: <Buffer b5 eb 2d> },{ Buffer_Data: <Buffer b5 eb 2d> }]

我想將雙引號添加到鍵和值中,結果應如下所示。

 [{ "Buffer_Data": "<Buffer b5 eb 2d>" },{ "Buffer_Data": "<Buffer b5 eb 2d>" },{ "Buffer_Data": "<Buffer b5 eb 2d>" },{ "Buffer_Data": "<Buffer b5 eb 2d>" }]

我試過 JSON.stringify 但它以無效格式提供給我緩沖區數據。 如何將其轉換為帶雙引號的數組。 請幫忙

這是我的代碼

 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
      })

我試過的代碼

    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);
      })

您可以使用此方法以您指定的格式將包含Buffer數據的對象數組字符串化:

./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>"}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM