Mam obiekt JSON i konwertuję go na a Buffer
i wykonuję tutaj pewien proces. Później chcę przekonwertować te same dane bufora, aby przekonwertować je na ważny obiekt JSON.
Pracuję na Node V6.9.1
Poniżej znajduje się kod, który próbowałem, ale otrzymuję, [object object]
gdy konwertuję z powrotem na JSON i nie mogę otworzyć tego obiektu.
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]
Próbowałem więc wydrukować cały obiekt metodą inspekcji
console.log('Full temp ' + require('util').inspect(buf, { depth: null })); //This prints --> '[object object]' [not printing the obj like declared above]
Jeśli spróbuję odczytać to jak tablicę
console.log(buf[0]); // This prints --> [
Próbowałem też parsować to rzut SyntaxError: Unexpected token o in JSON at position 2
Muszę zobaczyć to jako rzeczywisty obiekt, jaki stworzyłem (mam na myśli zadeklarowany powyżej).
Proszę pomóż..
({"id":"value"}).toString() === '[object Object]' //true
new Buffer()
jest przestarzałe. Zobacz tutaj: nodejs.org/api/buffer.html#buffer_new_buffer_arrayOdpowiedzi:
Musisz zdefiniować json, a nie dzwonić
toString
var buf = Buffer.from(JSON.stringify(obj));
I do konwersji ciągu znaków na json obj:
var temp = JSON.parse(buf.toString());
źródło
new
obj