1. ホーム
  2. json

[解決済み] JSONオブジェクトをBufferに変換し、BufferをJSONオブジェクトに戻す。

2022-05-16 11:33:40

質問

JSONオブジェクトを持っていて、それを Buffer に変換し、ここで何らかの処理を行っています。後で同じバッファのデータを有効なJSONオブジェクトに変換したい。

私はNode V6.9.1で作業しています。

以下は、私が試したコードですが、私は取得します。 [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]

そこで、inspectの方法を使ってオブジェクト全体を表示しようとしました。

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());