【初心者用】jQueryを使ってjsonデータをhtmlに生成する(基本編)
前回の初心者編では、簡単なjsonデータを作成してhtmlに出力をしました。今回は基本編として、運用をする想定としてもう少しデータ量を増やしたjsonを作成し、htmlに出力させるようにします。
スポンサーリンク
・初心者編:【初心者用】jQueryを使ってjsonデータをhtmlに生成する
jsonを回して、以下のような表を作成しようと思います。
みなさんご存じのレトロゲーム機です。
※各データはWikipediaより引用
まずはjsonデータから。
json
[ { "hardname": "ハード名", "maker": "メーカー", "release": "発売日", "price": "発売当初価格", "sales": "販売台数", "class": "title" }, { "hardname": "スーパーファミコン", "maker": "任天堂", "release": "1990/11/21", "price": "9,800円", "sales": "1,717万台", "class": "item" }, { "hardname": "メガドライブ", "maker": "セガ・エンタープライゼス", "release": "1988/10/29", "price": "21,000円", "sales": "358万台", "class": "item" }, { "hardname": "PCエンジン", "maker": "ハドソン/NECホームエレクトロニクス", "release": "1987/10/30", "price": "24,800円", "sales": "750万台", "class": "item" } ]
ハード名、メーカー名、発売日、発売当時価格、販売台数をそれぞれ変数に割り当てます。
このファイルをgamehard.jsonとします。
javascriptは以下のようにしました。
javascript
$(function(){ $.getJSON("gamehard.json", function(data){ var src = data.map(function(i){ return '<tr class="' + i.class + '">' + '<td>' + i.hardname + '</td>' + '<td>' + i.maker + '</td>' + '<td>' + i.release + '</td>' + '<td>' + i.price + '</td>' + '<td>' + i.sales + '</td>' + '</tr>'; }) .join(''); src = '<table>' + src + '</table>'; $('#gamehard-list').append(src); }); });
getJSON関数で外部のjsonデータ(gamehard.json)を受け取り、htmlに出力する動作を作ります。
今回作成したい表はtrをループさせるイメージなので、trの中身を書いていきます。
各tdにはそれぞれに読み込む変数を入れています。
1行目のみ見出し扱いなので、ここだけ特定のclassが付くようにしました。
最後に、html側にidで出力するようにします。
#gamehard-listとしました。
html側は、id(#gamehard-list)で読み込むだけなので、以下のようにします。
html
<div id="gamehard-list"></div>
これで、表の完成です。
これであれば表の項目を追加しない限りhtmlやjavascriptの修正をしなくて済むため、コーディングに抵抗がある人でも、比較的容易にデータの更新ができると思います。