其他对象内的对象,根据这些对象获取对象

时间:2016-06-08 16:30:22

标签: javascript jquery json object

在我的另一个问题中,我被问到更普遍地问这个问题是什么,如果你想让我一字不漏地修改另一个问题,请告诉我。

我会尝试尽可能多地概括我的问题,但我并不是都熟悉.json文件,所以这将有点延伸。

所以,我有一个.json文档,其中包含我需要的对象(id)和我拥有的对象(名称),它们都在另一个对象内。像这样的东西(主要是简化版):

{"LEA":
{"name": "Limited Edition Alpha", "code": "LEA", "cards":[
{"name": "Sorin", "id": "02389302"},

"SOI":
{"name": "Shadows over Innistrad", "code": "SOI", "cards":[
{"name": "Avacyn", "id": "12394381"}
}

我试图遍历每一个对象('LEA','SOI'部分 - 其中有192个),直到我遇到我拥有的对象(例如'Avacyn'),然后找到对象我需要(在这种情况下'12394381'),我目前正处于骑车穿越物体的阶段:

        $.getJSON("AllSets.json", function(json) {

            console.log(json); 

            Sets = Object.keys(json);
            i = 0;


            while (i < Sets.length){
                currentSet = Sets[i];
                console.log(json.currentSet);
                console.log(currentSet);
                console.log(i);
                i = i + 1;

            }


        });

但是我遇到了一个障碍,因为currentSet和i变量正在返回正确的值,但是json.currentSet正在返回undefined我相信这是因为它正在读取它作为变量名而不是变量内容。

我真正需要知道的是,我正确接近这个吗?是否有捷径可寻?我完全偏离了轨道吗?我不是一个javascript编码器,我不熟悉.json,我只是想从我目前拥有的字符串中获取id。

编辑:

下面的完整代码,非常感谢@Felix Kling提供了所有令人惊叹的资源。关键是要在每个对象中移动一个项目。

        $.getJSON("AllSets.json", function(json) {

            Sets = Object.keys(json);
            i = 0;

            while (i < Sets.length){

                currentSet = Sets[i];
                Cards = Object.keys(json[currentSet].cards);
                j = 0

                while (j < Cards.length){

                    currentCard = Cards[j];
                    cardName = json[currentSet].cards[currentCard].name;
                    if (cardName == "Island"){
                        console.log(json[currentSet].cards[currentCard].multiverseid);

                    }
                    j = j + 1
                }

                i = i + 1;

                }
            }


        });

0 个答案:

没有答案