【初心者用】jQueryを使ってjsonデータをhtmlに生成する
更新の頻度と手間を踏まえてサイト構築を考えていると、制作チームが毎回htmlを書き換えるより、jsonのテキストデータならhtmlがわからない人でもファイルの書き換えができるという利点から、jsonを使用してみようという話になったので、その時の学習メモ。
スポンサーリンク
jsonの知識はあったが、自分で作ったことは無かったので、まったくの初心者がjsonデータを作っていきます。
(立ち位置的にはデザイナーなんだけどな…)
今回は簡単なjsonデータを作成して、htmlに出力するまでをメモしています。
1.jsonデータをページ内に直接書く場合
script内にjsonデータを記述していきます。
(jsonデータは外部から読み込むのが基本なので、script内に記述しているデータがjsonとは言わないですが、練習用なのでそこはスルーしてください。)
$(function() { var data = [ { "animal": "いぬ", "type": "パグ" }, { "animal": "ねこ", "type": "ペルシャ" }, { "animal": "うさぎ", "type": "ネザーランド・ドワーフ" }, { "animal": "ハムスター", "type": "ジャンガリアンハムスター" }, ]; });
読み込むときは、任意の場所にidを指定してあげて下さい。
<ul id="contents_list"></ul>
このままだと読み込むことはできないので、jsで読み込む動きを作ります。
for・in文を使ってhtml側へ出力をします。
$(function() { //データ var data = [ { "animal": "いぬ", "type": "パグ" }, { "animal": "ねこ", "type": "ペルシャ" }, { "animal": "うさぎ", "type": "ネザーランド・ドワーフ" }, { "animal": "ハムスター", "type": "ジャンガリアンハムスター" }, ]; //出力する処理 for(var i in data){ $("#contents_list").append("<li>" + data[i].animal + "(" + data[i].type + ")</li>"); } });
これでscript内に記述されているjsonデータを出力することができました。
2.jsonデータを外部ファイルで読み込む場合
jsonデータを外部ファイルとして扱う場合は、サーバーにアップしないと使用できません。
(ローカルでjsonファイルがなんで読めないんだろうと悩んでました…)
外部ファイルとして扱う方法としては、getJSON関数を使えばjsonデータを簡単に読み込んで使用することができます。
getJSON()関数で外部のjsonデータを受け取り、1.と同様にfor・in文を使ってhtml側へ出力をします。
1.でscript内に記述したものを以下のように書き換えます。
[ { "animal": "いぬ", "type": "パグ" }, { "animal": "ねこ", "type": "ペルシャ" }, { "animal": "うさぎ", "type": "ネザーランド・ドワーフ" }, { "animal": "ハムスター", "type": "ジャンガリアンハムスター" } ]
この書き換えたファイルをsample0915.jsonとします。
html側は以下のように書き換えます。
<ul id="contents_list2"></ul>
何も書き換えていません。idで読み込むのに変わりはありません。
※1.と読み込みを変えるため、id名のみ変更しています。
getJSON関数で外部のjsonデータ(sample0915.json)を受け取り、htmlに出力する動作を作ります。
$(document).ready(function () { $.getJSON("sample0915.json", function(data){ for(var i in data){ $("#contents_list2").append("<li>" + data[i].animal + "(" + data[i].type + ")</li>"); } }); });
サンプルページを表示
※1.2.ともに出力結果は同じです。
これで外部のjsonデータをhtmlに出力することができました。
次回は、もう少し運用に沿った形のhtmlを出力できるjsonデータを作ろうと思います。
外部のJSONデータをjQueryを使ってHTMLへ出力する
https://designsupply-web.com/knowledgeside/1463/
jQueryでjsonデータを扱ってみる【入門編】
https://www.webopixel.net/javascript/91.html