我有一个包含以下内容的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 );
});
但是当我在手机上运行时,没有显示警报。我可能做错了什么想法?
答案 0 :(得分:1)
尝试更改
$.each(JSONObject.results.bindings, function(i, obj) {
到
$.each(json, function(i, obj) {
编辑:此外,您应该在var linkList = []
函数范围之外声明$.getJSON
(在它之上)。否则,它将在全局范围内未定义。
编辑2:哦,更重要的是,$ .getJSON是一个异步函数。您正在开始加载.json文件,然后您的代码继续进入警报部分。此时,它尚未加载,因此数组始终为空。然后几毫秒后,它加载了JSON,这已经太晚了。将您的$.each
代码移到$.getJSON
回调中。