javascript - 无法读取 JSON - 无法读取未定义的属性

标签 javascript json javascript-objects

我已经为这个问题苦苦挣扎了一段时间了。当我尝试 console.log JSON 属性时,出现以下错误:

TypeError: Cannot read property 'timelineData' of undefined

这就是我的 JSON 文件的样子:

{
  "default": {
    "timelineData": [{
      "time": "1359676800",
      "formattedTime": "Feb 1, 2013",
      "formattedAxisTime": "Feb 1, 2013",
      "value": [51],
      "hasData": [true],
      "formattedValue": ["51"]
    }, {
      "time": "1359763200",
      "formattedTime": "Feb 2, 2013",
      "formattedAxisTime": "Feb 2, 2013",
      "value": [53],
      "hasData": [true],
      "formattedValue": ["53"]
    }, {
      "time": "1359849600",
      "formattedTime": "Feb 3, 2013",
      "formattedAxisTime": "Feb 3, 2013",
      "value": [53],
      "hasData": [true],
      "formattedValue": ["53"]
    }],
    "averages": []
  }
}

这就是我调用数据的方式:

console.log(results.default.timelineData[0].time);

我不知道我做错了什么。也许我错误地解释了这个 JSON 对象?任何帮助,将不胜感激。

最佳答案

观察:

结果看起来像一个数组而不是对象

演示

var results = [{
	"default": {
		"timelineData": [{
			"time": "1359676800",
			"formattedTime": "Feb 1, 2013",
			"formattedAxisTime": "Feb 1, 2013",
			"value": [51],
			"hasData": [true],
			"formattedValue": ["51"]
		}, {
			"time": "1359763200",
			"formattedTime": "Feb 2, 2013",
			"formattedAxisTime": "Feb 2, 2013",
			"value": [53],
			"hasData": [true],
			"formattedValue": ["53"]
		}, {
			"time": "1359849600",
			"formattedTime": "Feb 3, 2013",
			"formattedAxisTime": "Feb 3, 2013",
			"value": [53],
			"hasData": [true],
			"formattedValue": ["53"]
		}],
		"averages": []
	}
}];

console.log(results.default.timelineData[0].time);

因此,要访问时间,您应该像这样使用:

var results = [{
	"default": {
		"timelineData": [{
			"time": "1359676800",
			"formattedTime": "Feb 1, 2013",
			"formattedAxisTime": "Feb 1, 2013",
			"value": [51],
			"hasData": [true],
			"formattedValue": ["51"]
		}, {
			"time": "1359763200",
			"formattedTime": "Feb 2, 2013",
			"formattedAxisTime": "Feb 2, 2013",
			"value": [53],
			"hasData": [true],
			"formattedValue": ["53"]
		}, {
			"time": "1359849600",
			"formattedTime": "Feb 3, 2013",
			"formattedAxisTime": "Feb 3, 2013",
			"value": [53],
			"hasData": [true],
			"formattedValue": ["53"]
		}],
		"averages": []
	}
}];

console.log(results[0].default.timelineData[0].time);

关于javascript - 无法读取 JSON - 无法读取未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49835965/

相关文章:

javascript - 在 JSON 对象中创建属性的变量名称

javascript - 如何在 DC.js 系列图表中为不同的线条绘制不同的线条图案?

Javascript 评估顺序

sql - 如何计算 postgresql 中 JSON 的 setof/键数?

php - Json_encode 二进制字符串

javascript - 我想用(新的 promise )将数据存储在变量中? javascript

javascript - 将 Json 数组合并为多维单数组

javascript - 获取超出最大调用堆栈大小

php - 如何解析 facebook graph api 响应

javascript - 如何在javascript中乘以对象中的值