2017-01-31 41 views
20

Tôi có đối tượng JSON và tôi đang chuyển đổi nó thành Bộ đệm và thực hiện một số quy trình tại đây. Sau đó tôi muốn chuyển đổi cùng một dữ liệu đệm để chuyển đổi thành đối tượng JSON hợp lệ.Chuyển đổi đối tượng JSON thành bộ đệm và đệm thành đối tượng JSON trở lại

tôi đang làm việc trên Node V6.9.1

Dưới đây là đoạn code tôi đã cố gắng nhưng tôi nhận được [object object] khi tôi chuyển đổi trở lại JSON và không thể mở đối tượng này.

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] 

Vì vậy, tôi đã cố gắng để in toàn bộ đối tượng sử dụng kiểm tra cách

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

Nếu tôi cố gắng để đọc nó như một mảng

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

Tôi đã cố gắng phân tích cú pháp cũng nó ném SyntaxError: Unexpected token o in JSON at position 2

Tôi cần xem nó như đối tượng thực như tôi đã tạo [i có nghĩa là như đã khai báo ở trên].

Xin giúp ..

Trả lời

37

Bạn cần phải stringify các json, không gọi toString

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

Và để chuyển đổi chuỗi JSON obj:

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

hoạt động hoàn hảo :) –

+1

không cần 'mới' – jpillora

Các vấn đề liên quan