2015-04-05 63 views
0

我有一個包含JSON文件:試圖把JSON文件到JS數組

[{ 
    "title": "title you desire", 
    "url" : "thisistheurl.com" 
},{ 
    "title": "title you desire", 
    "url" : "thisistheurl.com" 
},{ 
    "title": "title you desire", 
    "url" : "thisistheurl.com" 
}] 

現在我試圖把它們添加到一個JS數組,並試圖向他們展示作爲我的手機警告:

$.getJSON('links.json', function (json) { 
    var linkList = []; 
    $.each(json, function(i, obj) { 
     linkList.push([obj.title, obj.url]); 
    }); 
}); 

$.each(linkList, function(key, value) { 
    alert(value.title + ": " + value.url); 
}); 

但是當我在手機上運行它時,沒有顯示警報。任何想法我可能做錯了什麼?

回答

1

嘗試改變

$.each(JSONObject.results.bindings, function(i, obj) {

$.each(json, function(i, obj) {

編輯:此外,你應該宣佈var linkList = []$.getJSON功能的範圍(上面)之外。否則它將在全局範圍內未定義。

編輯2:哦,更重要的是$ .getJSON是一個異步函數。發生了什麼是您開始加載.json文件,然後您的代碼繼續到警報部分。此時,它尚未加載,所以數組始終爲空。然後幾毫秒後,它加載JSON,這太遲了。將您的$.each代碼移到$.getJSON回調中。

+0

現在發生的事情(在你的第二次編輯之後)。現在我收到了3條警報,但是他們都說「undefined:undefined」。 – janlindso 2015-04-05 04:52:13

+0

從'obj.title'和'obj.url'中刪除'.value'。 – 2015-04-05 04:53:15

+0

已經這樣做了。 :)但仍然沒有改變任何東西。 – janlindso 2015-04-05 04:53:43