みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Javascriptで複数のjsonを読み込みたい

Javascriptについてご教授頂きたい点があり、質問しました。

私事で、現在とあるサイトの修正を行なっています。そのサイト内の更新情報の部分がJavascriptで制作されており、具体的にはjson形式のファイルをJavascriptで読み込み、HTMLとして出力する形になっています。

質問下部が、そのJavascriptです。

現在はjsonファイルをひとつだけの読み込んで表示しているのですが、
今後コンテンツの拡充するため、2種類のjsonを読み込む必要がでてきました。

jsonファイルの中身や項目ついては2種類ともほぼ同じような内容です。

考えられる様々な方法を試してみたのですが、うまくいかず、質問させていただきました。
どなたかお力添えを頂けないでしょうか。



var result2 = '';
var rec2 = 5;
var jsonHostname = "元々のJSONのディレクトリURL";

var jsonUrl = '';
jsondata2 = "";

function callback_whats_new(data2) {callbackCommon2(data2);}
function callbackCommon2(data2) {
jsondata2 = data2;
if(typeof jsondata2 == 'object'){
draw2();
} else {
indexDiv2.innerHTML = '<br><div class="t_m" style="text-align:left; margin-left:8px;">当サイトをご覧いただくには、<br>JavaScriptとFlashの再生環境が必要となります。<br><br>' +
'詳しくは「<a href="">ご利用に際して</a>」をご覧ください。<br><br></div>';
}
}

function getIndex2(n2) {
var list = n2;
var type = list;
indexDiv2 = document.getElementById(type);

filename = type;
var url = jsonHostname + filename + '.json?' + (new Date().getTime()); 元々入っていたjsonファイルののURL
var idval = 'jsonp_' + type;
var charset = 'utf-8';

charset = charset ? charset : 'utf-8';

var headObj = document.getElementsByTagName('head')[0];

var scriptTag = document.getElementById(idval);

if (scriptTag) {
headObj.removeChild(scriptTag);
}
scriptTag = document.createElement('script');
scriptTag.type = 'text/javascript';
scriptTag.id = idval;
scriptTag.charset = charset;
scriptTag.src = url;
headObj.appendChild(scriptTag);

}

function draw2(e,n1, n2, n3, n4) {
result2="";

if (typeof n1 != 'undefined') turn = n1;
if (typeof n2 != 'undefined') cat_2 = n2;
if (typeof n3 != 'undefined') category = n3;
hl = jsondata2.headline;

if(typeof rec2!='number'){
hlLength = hl.length;
}else if(rec2 > hl.length){
hlLength = hl.length;
}else{
hlLength = rec2;
}

tMon = 0;
for (var i = 0; i < hlLength; i++) { wrHTML2(i); }
if (result2) {
indexDiv2.innerHTML = result2;
} else {
indexDiv2.innerHTML = '<span class="t_m">該当する情報はありません。</span>\n';
}
if (typeof list == 'object' && listNum < list.length) getIndex2(list);
}


function wrHTML2(n) {
var f = 0;
var f2 = 0;

var icon="";

var date = (jsondata2.headline[n].date) ? jsondata2.headline[n].date : "";
if (cat_2 && cat_2 != Number(date.substr(4,2))) return;
var uri = (jsondata2.headline[n].uri.uri) ? jsondata2.headline[n].uri.uri : "";
var tar = jsondata2.headline[n].uri.target;
var no = jsondata2.headline[n].txt.no;
var txt = (jsondata2.headline[n].txt.txt) ? jsondata2.headline[n].txt.txt : "";
var jsOpenWinFlg;

if (-1!= uri.indexOf("/html/")){
if (-1!= (jsOpenWinFlg = uri.indexOf("/report/"))){
var aElementAttr = 'href="JavaScript:popupWin(\''+uri+'\',\'subwin\',\'900\',\'700\');"';
}else if (-1!= (jsOpenWinFlg = uri.indexOf("/news/other/"))){
var aElementAttr = 'href="JavaScript:popupWin(\''+uri+'\',\'subwin\',\'900\',\'700\');"';
}else{
var aElementAttr = 'href="'+uri+'" target="'+tar+'"';
}
}else{
var aElementAttr = 'href="'+uri+'" target="'+tar+'"';
}

if (date) date = date.substr(2,2) + '/' + date.substr(4,2) + '/' + date.substr(6);
result2 += '<table width="100%"><tr>';
result2 += '<td width="17%" valign="top">' + date + '</td>';
result2 += '<td width="83%" valign="top">';
result2 += '<a ' + aElementAttr + '>' + txt + '</a>';
result2 += '</td>';
result2 += '</tr></table>';


}

投稿日時 - 2012-07-13 16:01:14

QNo.7588255

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

JSONというよりスクリプトファイルなのですか?
data=~みたいな形になっているのですか?
JSONの仕様含む今の仕様と、目的の仕様と、失敗したやり方を
日本語と超わかりやすい必要な部分だけのコードとで説明していただけると助かります

投稿日時 - 2012-07-14 15:11:24