web-dev-qa-db-ja.com

JSONオブジェクトをバッファに、バッファをJSONオブジェクトに変換する

私はJSONオブジェクトを持っています、そして私はそれをバッファに変換して、そしてここで何らかのプロセスをしています。後で私は有効な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を投げて解析してみました

私はそれを私が作ったような実際のオブジェクトとして見る必要があります。

助けてください..

52
Prasanth J

toStringを呼び出さずに、jsonを文字列化する必要があります。

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

そして、文字列をjson objに変換します。

var temp = JSON.parse(buf.toString());
104
Ebrahim Pasbani