2016-06-08 34 views
0

再次挣扎,我很害怕。 我在线访问了名为MTG JSON(http://mtgjson.com/)的资源,该资源是一个json文件,其中包含每个打印的每张Magic the Gathering卡的信息。调用其他对象内的对象,MTGJSON

现在我得到的信息是卡片名称,我想获得多重识别码。如果这些信息位于AllCards.json文件中,这将非常简单,但它存储在AllSets.json中,这意味着我需要通过对象进行挖掘。

我对javascript非常陌生,因此获得这个成就已经相当成功,但我绝对难以置信,需要帮助。

所以,首先是代码。目前我已经想出这个来读取文件:

 $.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; 

      } 


     }); 

而且我已经开始通过套,以便找到我目前由名卡移动。

的问题是以下三行:

   console.log(json.currentSet); 

       console.log(currentSet); 

       console.log(i); 

这些是那些让我最头痛的问题,因为这两个我和currentSet正在做他们的工作很好,返回当前设置和corrent位置上设置在列表中。但json.currentSet返回为undefined

对于那些有兴趣的JSON的结构:

 "SOI","releaseDate":"2016-04-08","border":"black","type":"expansion","block":"Shadows over Innistrad","booster":[["rare","mythic rare"],"uncommon","uncommon","uncommon","common","common","common","common","common","common","common","common","common","common","land","marketing"],"translations":{"de":"Schatten über Innistrad","fr":"Ténèbres sur Innistrad","it":"Ombre su Innistrad","es":"Sombras sobre Innistrad","pt":"Sombras em Innistrad","jp":"イニストラードを覆う影","cn":"依尼翠暗影","ru":"Тени над Иннистрадом","ko":"이니스트라드에 드리운 그림자"},"cards":[{"artist":"Chase Stone","cmc":3,"colorIdentity":["W"],"colors":["White"],"flavor":"\"We pray to Avacyn on high.\nOn snow-white wings fearless you fly.\nKeep safe our souls. Keep safe our lives.\nMay angels watch us from the skies.\"\n—Children's prayer","id":"c053a8c64d8c2ff2f17e4306344f353b46cd7352","imageName":"always watching","layout":"normal","manaCost":"{1}{W}{W}","multiverseid":409737,"name":"Always Watching","number":"1","rarity":"Rare","text":"Nontoken creatures you control get +1/+1 and have vigilance.","type":"Enchantment","types":["Enchantment"]},{"artist":"Joseph Meehan","cmc":8,"colorIdentity":["W"],"colors":["White"],"id":"80673365be1e340436928050e487afe0d2a70539","imageName":"angel of deliverance","layout":"normal","manaCost":"{6}{W}{W}","multiverseid":409738 

任何意见,批评,建议等,将不胜感激,因为每次我想我做一英里的时候,我看到另一个10远在前方。

+0

的问题,如问,目前还不清楚,需要AllSets.json和AllCards.json的知识结构。我认为如果将问题泛化并提供两个与您的实际字符串类似的简短样例json字符串,但是大多数不必要的cruft会被剪切以供观众使用,那么您将有更好的运气获得答案。 – Tex

+0

我自己并不太熟悉这个结构,但我会尝试重新发布更普遍。感谢您的反馈。 –

回答

0

为什么你不使用类似的东西

cards.forEach(function(e){ 
    if(e.name == "myName") 
     console.log(e.multiverseid); 
}); 
+0

我不能看到卡,直到我打开设置,他们在,但我认为这将工作,一旦我打开设置。 –