$.getJSON( アクセス先 , コールバック関数 );第1引数にはアクセス先のアドレスを、第2引数にはアクセス完了後に呼び出される関数をそれぞれ指定しておきます。コールバック関数は、引数に受け取ったJsonオブジェクトが渡されます。この引数のオブジェクトから必要な情報を取り出していき、処理をすればよいのです。ここでの処理を見ると、コールバック関数は以下のようになっていることが分かります。
function(data) {
var obj = data.data;
var msg = obj.msg;
var list = obj.list;
$('#msg').text(msg);
for(key in list){
$('<li>').text(list[key]).appendTo('#place');
}
$('#place').listview('refresh');
}まずdataオブジェクトをとり出し、そこからmsgとlistの値をそれぞれ変数にとり出します。msgは、そのまま$('#msg').text(msg);でテキストとして表示させておきます。リストの方は、繰り返しを使い、配列から順に値を取り出しては$('<li>')を作ってappendTo('#place')していきます。※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※json.jsonファイル
{
"data":{
"msg":"これは、サンプルデータのメッセージです。",
"list":["One","Two","Three"]
}
}
※HTMLソースコード
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="content-type"
content="text/html;charset=utf-8" />
<title>Sample</title>
<link rel="stylesheet"
href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript"
src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
<script type="text/javascript">
$('#home').live('pagecreate',function(){
$('#btn').bind('tap',doAction);
});
function doAction(){
$('#place').html('');
$.getJSON('json.json', function(data) {
var obj = data.data;
var msg = obj.msg;
var list = obj.list;
$('#msg').text(msg);
for(key in list){
$('<li>').text(list[key]).appendTo('#place');
}
$('#place').listview('refresh');
});
}
</script>
</head>
<body>
<!-- home page -->
<div id="home" data-role="page">
<div data-role="header">
<h1>Hello</h1>
</div>
<div data-role="content">
<p id="msg">※サンプル。</p>
<div data-role="fieldcontain">
<ul id="place" data-role="listview"></ul>
</div>
<div data-role="fieldcontain">
<input type="button" name="btn" id="btn"
value="Load" />
</div>
</div>
</div>
</body>
</html>
| << 前へ |