首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用从同一文件中获取的文本访问JSON文件中的对象属性

如何使用从同一文件中获取的文本访问JSON文件中的对象属性
EN

Stack Overflow用户
提问于 2012-11-04 01:34:21
回答 2查看 2K关注 0票数 0

我正在尝试使用d3从JSON文件中的数据创建堆叠条形图。每个酒吧都会有一个特定月份的平局、输赢。

JSON文件:

代码语言:javascript
运行
复制
{
    "name": "FHS",
    "points": 3000,
    "ties": 3,
    "losses": 19,
    "wins": 50,
    "games": {
        "2010-09": { "ties": 1, "losses": 2, "wins": 16 },
        "2010-10": { "ties": 2, "losses": 5, "wins": 13 },
        "2010-11": { "ties": 0, "losses": 12, "wins": 21 }
    }
}

我已经通过d3.json功能很好地使用了一些数据。例如:

代码语言:javascript
运行
复制
d3.json("data.json",function(error,data)
    {
        alert(data.name);
        alert(data.points);
        // etc.
    });

但这是有趣的地方(仅供参考,我使用下划线库来获取“游戏”的每个属性...perhaps这就是我出错的地方?)。如果我尝试执行以下操作:

代码语言:javascript
运行
复制
_.keys(data.games).forEach(function(d)
    {
        alert(d);
    });

我在三个不同的警报boxes...perfect中得到了2010-09,2010-10,2010-11!但是,如果我尝试执行以下操作:

代码语言:javascript
运行
复制
_.keys(data.games).forEach(function(d)
    {
        alert(d.ties);
    });

我没有定义:/事实上,我看到的另一个问题是

代码语言:javascript
运行
复制
alert(data.games.2010-09.ties);

应该可以工作(如果属性名称不是以整数或连字符开头...),但由于文字("2010-09")...so的格式而不能工作,我的主要问题是如何以这样一种方式动态访问嵌套对象属性,从而使生成图表变得简单。我已经尝试包括足够的上下文,但如果您想要更多的信息,请告诉我。提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-04 11:10:12

您在警告框中没有定义,因为在此函数中,d是一个字符串- "2010-09“、"2010-10”、"2010-11“等-因为您正在迭代_.keys(data.games)返回的字符串数组。

因此,alert(d.ties)类似于调用alert("2010-09".ties),这是意想不到的未定义。

但是,根据拉斯的解释,

代码语言:javascript
运行
复制
_.keys(data.games).forEach(function(d)
{
    alert(data.games[d].ties);
});

是你如何获取数据的。

P.S.Javascript是更健壮的方法(因此通常是首选方法)来调试console.log(data.games[d].ties)

票数 2
EN

Stack Overflow用户

发布于 2012-11-04 01:58:40

您可以将密钥包含在[""]中以获取该值,即alert(data.games["2010-09"].ties);将起作用。您可能还会对使用键值结构的d3函数感兴趣;请参阅the documentation

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13211705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档