Wren_XR 2021-03-07 11:46 采纳率: 100%
浏览 124
已结题

将 Buffer 转换为 JSON 对象

 

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);

// 输出: {"type":"Buffer","data":[1,2,3,4,5]}
console.log(json);

const copy = JSON.parse(json, (key, value) => {
  return value && value.type === 'Buffer' ?
    Buffer.from(value.data) :
    value;
});

// 输出: <Buffer 01 02 03 04 05>
console.log(copy);

上面是菜鸟教程Node.js中的一段代码,下面这一部分一直理解不了,求大佬详解!万谢!

const copy = JSON.parse(json, (key, value) => {
  return value && value.type === 'Buffer' ?
    Buffer.from(value.data) :
    value;
});
  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-16 13:52
    关注

    参考GPT和自己的思路:

    这段代码的作用是将之前转换为JSON字符串的Buffer对象转换回原来的Buffer对象。具体解释如下:

    • 在第7行开始,通过JSON.parse()方法将JSON字符串解析为JavaScript对象。
    • 在这个过程中,第二个参数是一个函数,用来控制如何解析JavaScript对象。
    • 函数的第一个参数是属性名称,第二个参数是属性值。
    • 在这里,函数的作用是检查属性值是否是Buffer类型的对象。如果是,就将其转换为Buffer对象;如果不是,就保持原样(即不做任何处理)。
    • 在第8到10行,使用三元运算符进行判断,如果属性值是Buffer对象,则利用Buffer.from()方法将其转换为Buffer;否则返回原来的值。
    • 最终,将解析出来的JavaScript对象赋值给copy变量,并输出copy内容即可。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月17日
  • 已采纳回答 4月9日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加