节点.js JSON 解析

Node.js JSON parsing

本文关键字:解析 JSON js 节点      更新时间:2023-09-26

我有一个看起来像这样的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]

您看到的输出只是它的显示方式。如果您访问 data.rowsets[0].rows ,您可以看到 JSON 确实已成功解析。在指定 depth 属性以指示 Node.js在设置对象格式时更深入地递归时,还可以使用 util.inspect()

下面是一个使用 util.inspect() 的示例:

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

已经测试过你的代码。没事的。

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