説明
JSONデータを読み込ませるにはprototype.jsライブラリを利用すると簡単です。Ajax.Request()で読み込むJSONデータのURLを指定します。JSONはJavaScriptのデータ構造そのものなのですが、単純に読み込んだだけでは単なるテキストとなってしまい、配列/連想配列(ハッシュ)として利用することができません。このためeval()を使って処理することで、配列/連想配列(ハッシュ)として使用できる状態に変換されます。
変換されたデータは通常の配列処理での指定だけでなくオブジェクト.プロパティ名といった形式での指定も可能です。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>XML形式のデータを読み込み表示する</h1>
<div id="tableData">データを読み込み中....</div>
</body>
</html>
window.onload = function(){
var msec = (new Date()).getTime();
new Ajax.Request("data.txt", {
method: "get",
parameters: "cache="+msec,
onSuccess:function(httpObj){
var jsonData = eval(httpObj.responseText);
var tbl = "<table border='1'>";
for (var i=0; i<jsonData.length; i++){
tbl += "<tr>";
tbl += "<td>"+jsonData[i].type+"</td>";
tbl += "<td>"+jsonData[i].price+"</td>";
tbl += "<td>"+jsonData[i].note+"</td>";
tbl +="</tr>";
}
tbl += "</table>";
$("tableData").innerHTML = tbl;
},
onFailure:function(httpObj){
$("tableData").innerHTML = "エラーで読み込めませんでした";
}
});
}