Как извлечь объект в node.js, какой объект декодируется с помощью bert.js? - PullRequest
1 голос
/ 16 декабря 2011

У меня есть объект, эквивалентный этому BERT (упакован для разборчивости):

{"Hello",[{1,"john","john123"},{2,"Michale","michale123"}]} 

в узле:

var S = Bert.bytes_to_string([131,104,2,107,0,5,72,101,108,108,111,108,0,0,0,2,104,3,97,1,107,0,4,106,111,104,110,107,0,7,106,111,104,110,49,50,51,104,3,97,2,107,0,7,77,105,99,104,97,108,101,107,0,10,109,105,99,104,97,108,101,49,50,51,106]);
var Obj = Bert.decode(S);
console.log(obj);

Я вижу в консоли, как показано ниже.

{
  '0': {
    type: 'bytelist',
    value: 'Hello',
    toString: [ Function ],
    repr: [ Function ]
  },
  '1': [
    {
      '0': 1,
      '1': [ Object ],
      '2': [ Object ],
      type: 'tuple',
      length: 3,
      value: [ Object ],
      repr: [ Function ],
      toString: [ Function ]
    },
    {
      '0': 2,
      '1': [ Object ],
      '2': [ Object ],
      type: 'tuple',
      length: 3,
      value: [ Object ],
      repr: [ Function ],
      toString: [ Function ]
    }
  ],
  type: 'tuple',
  length: 2,
  value: [
    {
      type: 'bytelist',
      value: 'Hello',
      toString: [ Function ],
      repr: [ Function ]
    },
    [
      [ Object ],
      [ Object ]
    ]
  ],
  repr: [ Function ],
  toString: [ Function ]
}

Как получить вывод как

{"Hello",[{1,"john","john123"},{2,"Michale","michale123"}]} 

сверху obj?

1 Ответ

3 голосов
/ 16 декабря 2011

используйте

Obj['0'].value

для получения строки "hello" и

Obj['1'].forEach(function(el){
  var fst = el['0'] //1,2
  var snd = el['1'].value //John,Mihcale
  var thd = el['2'].value  //john123,michale123
})

Вы читаете "[Object]" только потому, что console.log не углубляется в иерархию объектов, если вы хотите визуализировать все свойства, попробуйте что-то вроде:

console.log(require('util').inspect(Obj,false,100))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...