将JSON对象转换为缓冲区和缓冲区返回JSON对象

时间:2017-01-31 06:50:14

标签: json node.js buffer

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

我正在使用Node V6.9.1

以下是我尝试过的代码,但是当我转换回JSON并且无法打开此对象时,我获得[object object]

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

我需要将它视为像我创建的真实对象[我的意思就像上面所声明的那样]。

请帮助..

1 个答案:

答案 0 :(得分:103)

您需要对json进行字符串化,而不是调用toString

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

将字符串转换为json obj:

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