У меня есть объект JSON, я конвертирую его в Buffer
и выполняю здесь какой-то процесс. Позже я хочу преобразовать те же данные буфера, чтобы преобразовать их в действительный объект JSON.
Я работаю над Node 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
Мне нужно рассматривать его как реальный объект, подобный созданному мной (я имею в виду, как заявлено выше).
Пожалуйста помоги..
({"id":"value"}).toString() === '[object Object]' //true
new Buffer()
не рекомендуется. См. Здесь: nodejs.org/api/buffer.html#buffer_new_buffer_arrayОтветы:
Вам нужно структурировать json, а не вызывать
toString
var buf = Buffer.from(JSON.stringify(obj));
А для преобразования строки в json obj:
var temp = JSON.parse(buf.toString());
источник
new
obj