【问题标题】:Reading a two-dimensional array from JSON [duplicate]从 JSON 中读取二维数组 [重复]
【发布时间】:2026-01-30 06:25:01
【问题描述】:

作为创建井字游戏简单实现的项目的一部分,我创建了一个 JSON 文件来存储游戏信息。该文件如下所示:

[
  {
    "turn": "x",
    "board": [
      [
        "????",
        "????",
        "????"
      ],
      [
        "????",
        "????",
        "????"
      ],
      [
        "????",
        "????",
        "????"
      ]
    ],
    "victory": false,
    "date": 1556727248491
  }
]

要访问会话,将遍历二维数组然后输出。打印到控制台时,它会正确输出整个对象,如下所示:

[ { turn: 'x',
    board: [ [Array], [Array], [Array] ],
    victory: false,
    date: 1556729502590 } ]

但是,当我尝试访问数组(板)时,它返回为未定义。这是我试图用来访问这个数组(数组)的代码示例。

let gameObject = fs.readFileSync("filename.json");
let gameContent = JSON.parse(gameObject);
var board = gameContent.board;

我不太确定我在这里做错了什么,因为我没有很多访问 JSON 文件的经验,任何帮助将不胜感激!

【问题讨论】:

  • var board = gameContent[0].board;
  • ^^ 您的最外层是一个包含一个对象的数组。所以要访问这个对象,你需要gameContent[0]
  • 另外:这与 JSON 无关。您已经解析了 JSON,现在您正在处理 JavaScript 对象。 JSON 是一种用于数据交换的文本符号(More here.) 如果您正在处理 JavaScript 源代码,而不是处理 string,那么您就不是在处理 JSON。 :-)
  • 或者,您可以修改输出文件的代码,使其包含单个对象而不是数组。

标签: javascript arrays node.js json


【解决方案1】:

gameContent 是一个数组,它的第一个元素具有属性board。所以访问它的第一个元素,然后访问板。

var board = gameContent[0].board;

【讨论】: