2017-01-31 45 views
20

我有一個JSON對象,我將它轉換爲一個緩衝區並在此處執行一些過程。後來我想將相同的緩衝區數據轉換爲有效的JSON對象。將JSON對象轉換爲緩衝區和緩衝區爲JSON對象回到頂端

我在節點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

我需要將其視爲像我創建的真實對象[我的意思是像上面聲明的]。

請幫助..

回答

37

您需要的字符串化JSON,沒有要求toString

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

,以及用於將字符串JSON OBJ:

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

完美的作品:) –

+1

不需要'新' – jpillora