将JSON对象转换为Buffer并将Buffer转换为JSON对象

我有一个JSON对象,我将其转换为Buffer并在此处进行一些处理。稍后,我想转换相同的缓冲区数据以转换为有效的JSON对象。

我正在研究Node V6.9.1

下面是我尝试过的代码,但是[object object]当我转换回JSON却无法打开该对象时遇到了。

var obj = {

key:'value',

key:'value',

key:'value',

key:'value',

key:'value'

}

var buf = new Buffer.from(obj.toString());

console.log('Real Buffer ' + buf); //This prints --> Real Buffer <Buffer 5b 6f 62 6a 65 63 74>

var temp = buf.toString();

console.log('Buffer to String ' + buf); //This prints --> Buffer to String [object Object]

所以我尝试使用检查方式打印整个对象

console.log('Full temp ' + require('util').inspect(buf, { depth: null }));  //This prints --> '[object object]' [not printing the obj like declared above]

如果我尝试像数组一样读取它

 console.log(buf[0]);  // This prints --> [

我也尝试解析它抛出 SyntaxError: Unexpected token o in JSON at position 2

我需要将其视为我创建的真实对象(我的意思是像上面声明的那样)。

请帮忙..

回答:

您需要将json字符串化,而不是调用 toString

var buf = Buffer.from(JSON.stringify(obj));

并将字符串转换为json obj:

var temp = JSON.parse(buf.toString());

以上是 将JSON对象转换为Buffer并将Buffer转换为JSON对象 的全部内容, 来源链接: utcz.com/qa/421324.html

回到顶部