2011-10-25 16 views
0

を変換するI持っているHTMLページの一番下にあるサイトマップを形成し、次のJSON:私はこのような他のページの/ AJAXの部分をロードするためにこれを使用理解積載JSON配列へのJavascript

var loadPages = { 'pageData' : [ 
    { 
     'loadInTo'  : '#aboutUs', 
     'url'   : 'http://www.website.co.uk/aboutUs.html', 
     'urlSection' : '#aboutUs' 
    }, 
    { 
     'loadInTo'  : '#whatWeDo', 
     'url'   : 'http://www.website.co.uk/whatWeDo.html', 
     'urlSection' : '#whatWeDo' 
    }, 
    { 
     'loadInTo'  : '#ourValues', 
     'url'   : 'http://www.website.co.uk/ourValues.html', 
     'urlSection' : '#ourValues' 
    }, 
    { 
     'loadInTo'  : '#ourExpertise', 
     'url'   : 'http://www.website.co.uk/ourExpertise.html', 
     'urlSection' : '#ourExpertise' 
    } 
] } 

HTML

<div id="aboutUs" class="section"></div> 
<div id="whatWeDo" class="section"></div> 
<div id="ourValues" class="section"></div> 
<div id="ourExpertise" class="section"></div> 

JS

for(i=0; i < loadPages.pageData.length ; i++){ 
    var current = loadPages.pageData[i]; 
    $(current.urlSection).load(current.url); 
} 

これはうまく動作します。しかし、JSONをページ上に置くのではなく、外部の.JSファイルに保存したいと思います。コンソール私は、ファイルがロードされている見ることができますが、私が参照できるで

window.siteMap = ''; 

$.ajax({ 
    type: "GET", 
    url: 'js/siteMap.js', 
    async: false, 
    beforeSend: function(x) { 
     if(x && x.overrideMimeType) { 
      x.overrideMimeType("application/j-son;charset=UTF-8"); 
     } 
    }, 
    dataType: 'json', 
    success: function(data){ 
     siteMap = eval('(' + data + ')'); 
    } 
}); 

:私はこれに近づいていますどのようにここでは上記のよう

私は、JSONファイルを読み込むことができますが、同じフォーマットにそれを得ることができません同じ方法でデータ。誰かが私が間違っているところを私に見せてくれるの?事前に多くの感謝。

+0

であればあなたが必要http://jsonlint.com/

$ .parseJSONを使用してJSONの妥当性をチェックします私はMIMEタイプが 'application \ json'ではなく' application/j-son'であることに気付きました。それはタイプミスですか? –

+0

@RB私はここからそれを得たhttp://www.jquery4u.com/json/ajaxjquery-getjson-simple/ – mtwallet

答えて

1

、データをevalし

$.parseJSON(data) 

代わり

EDIT使用しないでください。 あなたの応答が文字列

+0

あなたの返信に感謝!私はこれを試してみましたが、siteMap.pageDataを参照しようとすると、未定義の結果が返されます – mtwallet

+0

jsファイルにはjsonデータのみが含まれます( 'var loadPages ='なし)?あなたのファイル.json拡張子を与えない.js – Irishka

+0

はいそれはちょうどjsonデータを持っています。私も.jsファイルの名前を.jsonに変更しましたが、変更はありません。 Google devツールでは、siteMapを参照すると__proto__オブジェクト – mtwallet