2015-07-11 73 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 
      } 
     ] 
     } 
    ] 
} 

我希望这会有所帮助。