2015-07-11 64 views
0

未定義回報我想知道是否有人能解釋爲什麼我所有的JSON的是作爲返回未定義.. JSON的是問題是的JSON字符串

{"273746":[{"name":"Darius's Wizards","tier":"GOLD","queue":"RANKED_SOLO_5x5","entries":[{"playerOrTeamId":"273746","playerOrTeamName":"Magnanimous","division":"V","leaguePoints":0,"wins":19,"losses":15,"isHotStreak":false,"isVeteran":false,"isFreshBlood":false,"isInactive":false}]}]} 

和JavaScript我得走了通過這是:

注意:在提供的代碼中我/ sumID是273746和s是'oce'由於Riot API準則我不能給你一個直接鏈接到API,所以我不得不粘貼它在上面。

功能statsLookUp(I,S){

$.ajax({ 

    url: 'https://oce.api.pvp.net/api/lol/' + s + '/v2.5/league/by-summoner/' + i + '/entry?api_key=', 
     type: 'GET', 
     dataType: 'json', 
     data: { 

     }, 
    success: function (json) { 
     //all json goes here 

     var sumID = i; 

     leagueName = json[sumID].name; 
     leagueTier = json[sumID].tier; 
     leagueDiv = json[sumID].entries.division; 
     leagueLoss = json[sumID].entries.losses; 
     leagueWin = json[sumID].entries.wins; 


      document.getElementById("sLeague").innerHTML = leagueName; 
      document.getElementById("sTier").innerHTML = leagueTier; 
      document.getElementById("sDivision").innerHTML = leagueDiv; 
      document.getElementById("sWins").innerHTML = leagueWin; 
      document.getElementById("sLosses").innerHTML = leagueLoss; 


     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      alert("error getting Summoner data!"); 
     } 
    }); 
} 

一切繼續返回未定義,但我似乎無法找到手頭的問題:/

+0

'json [sumID]'是一個數組。它顯然不能有'名字'。 (我假設你想'json [sumID] [0]') – njzk2

回答

0

只是使這種變化,你的代碼將被罰款:

leagueName = json[sumID][0].name; 
leagueTier = json[sumID][0].tier; 
leagueDiv = json[sumID][0].entries[0].division; 
leagueLoss = json[sumID][0].entries[0].losses; 
leagueWin = json[sumID][0].entries[0].wins; 

這是你的格式化JSON數據:

{ 
    "273746":[ 
     { 
     "name":"Darius's Wizards", 
     "tier":"GOLD", 
     "queue":"RANKED_SOLO_5x5", 
     "entries":[ 
      { 
       "playerOrTeamId":"273746", 
       "playerOrTeamName":"Magnanimous", 
       "division":"V", 
       "leaguePoints":0, 
       "wins":19, 
       "losses":15, 
       "isHotStreak":false, 
       "isVeteran":false, 
       "isFreshBlood":false, 
       "isInactive":false 
      } 
     ] 
     } 
    ] 
} 

我希望這會有所幫助。