试图将JSON文件放入JS数组中

时间:2015-04-05 04:37:36

标签: javascript jquery json cordova jquery-mobile

我有一个包含以下内容的JSON文件:

[{
  "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 个答案:

答案 0 :(得分:1)

尝试更改

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

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

编辑:此外,您应该在var linkList = []函数范围之外声明$.getJSON(在它之上)。否则,它将在全局范围内未定义。

编辑2:哦,更重要的是,$ .getJSON是一个异步函数。您正在开始加载.json文件,然后您的代码继续进入警报部分。此时,它尚未加载,因此数组始终为空。然后几毫秒后,它加载了JSON,这已经太晚了。将您的$.each代码移到$.getJSON回调中。