正在读取嵌套json,jquery返回undefined

Reading nested json with jquery returning undefined

本文关键字:jquery 返回 undefined json 读取 嵌套      更新时间:2023-09-26

我正试图使用jquery读取一个带有嵌套元素的json文件,我可以调用并返回第一级,但当我调用"result"时,它返回的是结果,但5"undefined"也带有

这是我的JSON:

{
"count": 380,
"fixtures": [
{
  "status": "FINISHED",
  "homeTeamName": "Manchester United FC",
  "awayTeamId": 73,
  "matchday": 1,
  "homeTeamId": 66,
  "result": {
    "goalsAwayTeam": 0,
    "goalsHomeTeam": 1
  },
  "date": "2015-08-08T11:45:00Z",
  "soccerseasonId": 398,
  "awayTeamName": "Tottenham Hotspur FC",
  "id": 147075
},
{
  "status": "FINISHED",
  "homeTeamName": "Everton FC",
  "awayTeamId": 346,
  "matchday": 1,
  "homeTeamId": 62,
  "result": {
    "goalsAwayTeam": 2,
    "goalsHomeTeam": 2
  },
  "date": "2015-08-08T14:00:00Z",
  "soccerseasonId": 398,
  "awayTeamName": "Watford FC",
  "id": 147073
}

这是我的HTML和JQuery:

<!DOCTYPE html>
<html>
<head>
    <title> </title>
    <style>
th, td {
border-bottom: 1px solid #ddd;
}
tr:nth-child(even){background-color: #f2f2f2}
</style>
</head>
<body>
      <table id="data">
          <tr>
              <td>status</td>
              <td>team 2</td>
              <td>team 1 </td>
              <td>score team 2</td>
              <td>score team 1</td>
          </tr>

      </table>
   <script     src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
   <script>/*global $*/ /*global result*/
   $.ajax({
       url: 'data.json',
       dataType: 'json',
       type: 'get',
       cache: false,
       success: function(data) {
          $(data.fixtures).each(function(index, value) {
               $("#data").append("<tr><td>"+value.status +"</td>"+"    <td>"+value.homeTeamName+"</td>"+"<td>"+value.awayTeamName+"</td>");
               $.each(value, function(result , v) {
             $("#data").append("<tr><td>"+v.goalsHomeTeam +"</td>"+"<td>"+v.goalsAwayTeam+"</td></tr>");
               });
          });

          }

   });
   </script>
</body>
</html>

这是输出:

FINISHED    Manchester United FC    Tottenham Hotspur FC
undefined   undefined
undefined   undefined
undefined   undefined
undefined   undefined
undefined   undefined
1   0

我希望我解释得足够好,感谢任何帮助。

JQuery每个

看起来你不需要把数组作为第一个参数

$.each(data.fixtures, function(index, value) {
           $("#data").append("<tr><td>"+value.status +"</td>"+"    <td>"+value.homeTeamName+"</td>"+"<td>"+value.awayTeamName+"</td>");
           $("#data").append("<tr><td></td><td>"+value.result.goalsHomeTeam +"</td>"+"<td>"+value.result.goalsAwayTeam+"</td></tr>");
      });

而不是将其放在选择器中