0

可能重复:
如何访问数字属性?

我写了一个页面来访问其他网站的 api。它以以下格式传递一个 json

{
    "a": {
        "2013-01-03": 3965,
        "total": 52284,
        "2013-01-05": 2636,
        "2013-01-04": 4086
    },
    "b": {
        "2013-01-03": 1969,
        "total": 25594,
        "2013-01-05": 1852,
        "2013-01-04": 2031
    },
    "c": {
        "2013-01-03": 6,
        "total": 443,
        "2013-01-05": 13,
        "2013-01-04": 19
    }
}

在我的页面中,我尝试访问,例如 data.a.total 它将返回 52284,但我无法访问 data.a.2013-01-03,它会产生错误。似乎数字不能成为json的关键。有人可以告诉我解决方案是什么吗?谢谢

4

2 回答 2

2

您可以将其解读为a['2012-12-13']使用[]访问命名属性的表示法。

例如:

var data = {"a": {"2013-01-03": 3965, "total": 52284, "2013-01-05": 2636, "2013-01-04": 4086}, "b": {"2013-01-03": 1969, "total": 25594, "2013-01-05": 1852, "2013-01-04": 2031}, "c": {"2013-01-03": 6, "total": 443, "2013-01-05": 13, "2013-01-04": 19}};

data.a['2013-01-03']会给你3965

于 2013-01-05T11:00:37.650 回答
1

如果键包含作为 JavaScript 标识符无效的字符,请使用方括号表示法:

json.a["2013-01-03"] // 3965
于 2013-01-05T11:02:00.943 回答