首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON数据检索

JSON数据检索
EN

Stack Overflow用户
提问于 2011-05-05 23:43:20
回答 1查看 220关注 0票数 1

我有一个数组嵌套的对象,它在一个对象内部,也在一个对象中。

编辑:--我的原始数据结构是错误的,所以这里是console.log(数据)的屏幕帽:

这是从AJAX请求返回的,我在获取数组时遇到了问题。诀窍是,它不会总是每个父对象返回3个数组,数组的数量取决于"length",或者更确切地说,"length“是每个包含数组的对象中期望的数组数量的反映。"OID“是"th”和“呃”对象的每个数组的名称。

还碰巧有几个主要对象,它们是用for(var i in data)迭代的。

我试过这样的方法:

代码语言:javascript
复制
for(var i in data) {
    for(var x in data[i].clicks) {
        //And now I'm lost here
        //I've tried getting the name of the Array from "OID"
        //and going from there, that failed miserably.
    }
}

如何获得每个数组的内容,最好是在不知道所述数组的名称、数量或长度的情况下完成。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-05 23:58:52

您的问题和数据结构不太清楚,而且我也不熟悉用于声明数组的语法,这在我看来是不正确的。

如果您希望您的数据结构是

代码语言:javascript
复制
data={
    "Clicks": {
            "length": 3,   //Can be between 0-3
            "OID": {
                1: "1",
                2: "2",
                3: "3"
            },
            "th": {
            1: [
                 null,
                null,
                null,
                null
            ],
            2: [
                null,
                null,
                null,
                null
            ],
            3: [
                null,
                null,
                null,
                null
            ]
            },
            "uh": {
           1: [
                 null,
                null,
                null,
                null
            ],
            2: [
                null,
                null,
                null,
                null
            ],
            3: [
                null,
                null,
                null,
                null
            ]
        }
    }
};

您想要做的是迭代thuh中的所有元素,其中键来自OID中的条目,您应该执行以下操作

代码语言:javascript
复制
for(var i = 1; i <= data.Clicks.length; i++){
    data.Clicks.th[data.Clicks.OID[i]];
    data.Clicks.uh[data.Clicks.OID[i]];
}

但是,如果您的键仅为数字,则似乎可以通过为每个thuh返回数组来为您提供更好的服务。

代码语言:javascript
复制
data={
    "Clicks": {
            "th": [
                [
                     null,
                    null,
                    null,
                    null
                ],
                [
                    null,
                    null,
                    null,
                    null
                ],
                [
                    null,
                    null,
                    null,
                    null
                ]
            ],
            "uh": [
               [
                     null,
                    null,
                    null,
                    null
                ],
                [
                    null,
                    null,
                    null,
                    null
                ],
                [
                    null,
                    null,
                    null,
                    null
                ]
            ]
        }
    };

并访问它

代码语言:javascript
复制
//assuming th and uh are of the same length always
for(var i = 1; i <= data.Clicks.th.length; i++){
    data.Clicks.th[i];
    data.Clicks.uh[i];
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5905316

复制
相关文章

相似问题

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