2017-10-22 13 views
-1

JSONを初めて使用しており、大学の割り当てにgetJSONを使用してウェブページにデータを表示するのが難しいです。テーブル行を追加するループを試しましたが、JSONファイルから返されるデータを使用する方法が不明です。ここでJSONレスポンスデータをHTMLテーブルに表示するには

は、私が働いて取得しようとするものである:

<body> 
    <table> 
    <tr> 
     <th>year</th> 
     <th>sem</th> 
     <th>module</th> 
     <th>crn</th> 
     <th>title</th> 
     <th>credits</th> 
     <th>level</th> 
     <th>coordinator</th> 
    </tr> 
</table> 
    <script src="//code.jquery.com/jquery-1.7.1.min.js"></script> 
    <script> 
     $.getJSON('modules.json', function(data) { 
     console.log(data); 
     var tr; 
     for (var i = 0; i < data.length; i++) { 
      tr = $('<tr/>'); 
      tr.append("<td>" + data[i].year + "</td>"); 
      tr.append("<td>" + data[i].sem + "</td>"); 
      tr.append("<td>" + data[i].module + "</td>"); 
      tr.append("<td>" + data[i].crn + "</td>"); 
      tr.append("<td>" + data[i].title + "</td>"); 
      tr.append("<td>" + data[i].credits + "</td>"); 
      tr.append("<td>" + data[i].level + "</td>"); 
      tr.append("<td>" + data[i].coordinator + "</td>"); 

      $('table').append(tr); 

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

GET応答を検査するとき、私はJSONデータが正常に返されましたが、多くの例を実装しようとしているにもかかわらず、私はそれを表示することができていないことがわかりますテーブルで私の理解は、それがループ内に行を追加する行に沿っているということですが、私が試しても何のテーブル出力も得られないようです。私のウェブページは今、テーブルヘッダーを表示しています。ここで

は私のJSONファイルを見ている:

{ "modules":[ 
    { 
     "year": 2, 
     "sem": 1, 
     "module": "COM145", 
     "crn": 1865, 
     "title": "Content Authoring", 
     "credits": 10, 
     "level": 5, 
     "coordinator": "Clarke Kent" 
    }, 
    { 
     "year": 1, 
     "sem": 3, 
     "module": "COM1333", 
     "crn": 2763, 
     "title": "Acad Study Skills for M'Media", 
     "credits": 10, 
     "level": 5, 
     "coordinator": "Bruce Wayne" 
    } 
]} 

おかげ

+0

これまでに何を試しましたか?私は彼らのために誰かの大学の課題をする人ではありませんが、あなたを正しい方向に向けることによって私は助けます。 –

+0

あなたが 'function(data)'で 'data'を使用していない場合、結果としてどうなると思いますか? –

+0

質問する前に検索してください:https://stackoverflow.com/questions/19901843/display-json-data-in-html-table、https://stackoverflow.com/questions/18395976/how-to-display-a- json-array-in-table-formatなど。 – MewX

答えて

0

あなたが間違いを行っているチェック、

$.getJSON('modules.json', function(data) { 
     var tr; 
     for (var i = 0; i <data.modules.length; i++) { 
      tr = $('<tr/>'); 
      tr.append("<td>" + data.modules[i].year + "</td>"); 
      tr.append("<td>" + data.modules[i].sem + "</td>"); 
      tr.append("<td>" + data.modules[i].module + "</td>"); 
      tr.append("<td>" + data.modules[i].crn + "</td>"); 
      tr.append("<td>" + data.modules[i].title + "</td>"); 
      tr.append("<td>" + data.modules[i].credits + "</td>"); 
      tr.append("<td>" + data.modules[i].level + "</td>"); 
      tr.append("<td>" + data.modules[i].coordinator + "</td>"); 

      $('table').append(tr); 

      } 

     }); 

jquery.each方法

でもこの方法をチェック
$.getJSON('modules.json', function(data) { 
     $.each(data.modules, function(index, val) { 
      tr = $('<tr/>'); 
      tr.append("<td>" + val.year + "</td>"); 
      tr.append("<td>" + val.sem + "</td>"); 
      tr.append("<td>" + val.module + "</td>"); 
      tr.append("<td>" + val.crn + "</td>"); 
      tr.append("<td>" + val.title + "</td>"); 
      tr.append("<td>" + val.credits + "</td>"); 
      tr.append("<td>" + val.level + "</td>"); 
      tr.append("<td>" + val.coordinator + "</td>");  
      $('table').append(tr); 
     }); 

     }); 
0

さて、私はこれをソートしました。 JSONファイルの先頭にある「modules」というタイトルは問題を引き起こしていました。配列の値を出力しようとすると空の値が返されます。私はちょうどそれを取り除いて、1つの配列オブジェクトに行って、再度data.valueを出力することができました。

関連する問題