2013-09-24 2 views
0

У меня есть JSON строка, которая выглядит следующим образом:Node.js JSON синтаксического

{ 
    "resultType" : "history", 
    "currentTime" : "2011-10-22T15:46:00+00:00", 
    "columns" : ["date","orders","quantity","low","high","average"], 
    "rowsets" : [ 
    { 
     "generatedAt" : "2011-10-22T15:42:00+00:00", 
     "rows" : [ 
     ["2011-12-03T00:00:00+00:00",40,40,1999,499999.99,35223.50], 
     ["2011-12-02T00:00:00+00:00",83,252,9999,11550,11550] 
     ] 
    } 
    ] 
} 

Каждый раз, когда я пытаюсь разобрать его, я использую такой код:

var data = JSON.parse(json); 
console.log(data); 

И следующий то, что выводится на консоль:

{ 
    "resultType" : "history", 
    "currentTime" : "2011-10-22T15:46:00+00:00", 
    "columns" : ["date","orders","quantity","low","high","average"], 
    "rowsets" : [ 
    { 
     "generatedAt" : "2011-10-22T15:42:00+00:00", 
     "rows" : [Object] 
    } 
    ] 
} 

Я пытался несколько вещей, но как я могу получить данные в rows поле? После разбора консоль просто показывает [Object].

ответ

9

Вывод, который вы видите, является именно тем, как он отображается. Если вы получаете доступ к data.rowsets[0].rows, вы можете видеть, что JSON действительно успешно разбирался. Вы также можете использовать util.inspect() при указании свойства depth, чтобы сообщить Node.js о необходимости более глубокого рассмотрения при форматировании объекта.

Вот пример использования util.inspect():

var data = JSON.parse(json); 
// a null depth means to recurse indefinitely 
console.log(util.inspect(data, { depth: null })); 
+0

Доступ к нему будет осуществляться с помощью 'data.rowsets [0] .rows'. 'rowsets' - это массив. – Rowno

+0

это, с помощью скобок массива, сделал трюк. благодаря! – user637980

0

Проверили свой код. Все нормально.

var a = { 
     "resultType" : "history", 
     "currentTime" : "2011-10-22T15:46:00+00:00", 
     "columns" : ["date","orders","quantity","low","high","average"], 
     "rowsets" : [ 
     { 
      "generatedAt" : "2011-10-22T15:42:00+00:00", 
      "rows" : [ 
      ["2011-12-03T00:00:00+00:00",40,40,1999,499999.99,35223.50], 
      ["2011-12-02T00:00:00+00:00",83,252,9999,11550,11550] 
      ] 
     } 
     ] 
    } 

    var util = require('util'); 

    console.log(util.inspect(a.rowsets[0].rows, { showHidden: true, depth: null })); 
Смежные вопросы