jQuery の jQuery . getJSON( url [, data] [, success( data, textStatus, jqXHR )] ) メソッドを使った Ajax リクエストで、JSON形式のデータを読み込み、パースし、表示する方法。
実装例(サンプル)
実装例(サンプル)の動作について
「toggle」ボタンをクリックすると、「jquery-sample-getJSON-json.js」ファイルを読み込み、パースし、黄色のボックス要素内に表示する。
読み込みが成功すると、「toggle」ボタンの右横に「読み込み成功」と表示する。
「toggle」ボタンを、再度クリックすると、元に戻す。
実装例(サンプル)のソースコード
JavaScript
<script>
<!--
jQuery( function() {
jQuery( '#jquery-sample-button' ) . toggle(
function() {
jQuery . getJSON(
'jquery-sample-getJSON-json.js',
function( data, textStatus ) {
if( textStatus == 'success' ) {
jQuery( '#jquery-sample-textStatus' ) . text( '読み込み成功' );
}
var title = '<h3>' + data . title + '</h3>';
jQuery( '#jquery-sample-getJSON' ) . append( title );
jQuery . each( data . color, function( index ) {
var name = data . color[index] . name;
var colorName = data . color[index] . colorName;
var colorCode = data . color[index] . colorCode;
var html = '<p style="color:' + colorName + ';">' + name + ':' + colorName + ':' + colorCode + '</p>';
jQuery( '#jquery-sample-getJSON' ) . append( html );
} );
}
);
if( jQuery( '#jquery-sample-textStatus' ) . text() == '' ) {
jQuery( '#jquery-sample-textStatus' ) . text( '読み込み失敗' );
}
},
function() {
jQuery( '#jquery-sample-getJSON' ) . html( '' );
jQuery( '#jquery-sample-textStatus' ) . text( '' );
}
);
} );
// -->
</script>
<!--
jQuery( function() {
jQuery( '#jquery-sample-button' ) . toggle(
function() {
jQuery . getJSON(
'jquery-sample-getJSON-json.js',
function( data, textStatus ) {
if( textStatus == 'success' ) {
jQuery( '#jquery-sample-textStatus' ) . text( '読み込み成功' );
}
var title = '<h3>' + data . title + '</h3>';
jQuery( '#jquery-sample-getJSON' ) . append( title );
jQuery . each( data . color, function( index ) {
var name = data . color[index] . name;
var colorName = data . color[index] . colorName;
var colorCode = data . color[index] . colorCode;
var html = '<p style="color:' + colorName + ';">' + name + ':' + colorName + ':' + colorCode + '</p>';
jQuery( '#jquery-sample-getJSON' ) . append( html );
} );
}
);
if( jQuery( '#jquery-sample-textStatus' ) . text() == '' ) {
jQuery( '#jquery-sample-textStatus' ) . text( '読み込み失敗' );
}
},
function() {
jQuery( '#jquery-sample-getJSON' ) . html( '' );
jQuery( '#jquery-sample-textStatus' ) . text( '' );
}
);
} );
// -->
</script>
CSS
<style type="text/css">
<!--
#jquery-sample {
margin: 10px;
width: 300px;
}
#jquery-sample-getJSON {
margin: 10px;
padding: 10px;
height: 150px;
background-color: yellow;
border: 1px solid gray;
border-radius: 10px;
}
-->
</style>
<!--
#jquery-sample {
margin: 10px;
width: 300px;
}
#jquery-sample-getJSON {
margin: 10px;
padding: 10px;
height: 150px;
background-color: yellow;
border: 1px solid gray;
border-radius: 10px;
}
-->
</style>
HTML
<div id="jquery-sample">
<p>
<button id="jquery-sample-button">toggle</button>
<span id="jquery-sample-textStatus"></span>
</p>
<div id="jquery-sample-getJSON"></div>
</div>
<p>
<button id="jquery-sample-button">toggle</button>
<span id="jquery-sample-textStatus"></span>
</p>
<div id="jquery-sample-getJSON"></div>
</div>
読み込むJSONファイルの内容
{
"title": "サンプル",
"color":
[
{
"name": "赤色",
"colorName": "red",
"colorCode": "#ff0000"
},
{
"name": "青色",
"colorName": "blue",
"colorCode": "#0000ff"
},
{
"name": "緑色",
"colorName": "green",
"colorCode": "#008000"
}
]
}
"title": "サンプル",
"color":
[
{
"name": "赤色",
"colorName": "red",
"colorCode": "#ff0000"
},
{
"name": "青色",
"colorName": "blue",
"colorCode": "#0000ff"
},
{
"name": "緑色",
"colorName": "green",
"colorCode": "#008000"
}
]
}