【初心者用】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
