1

我是 JavaScript 新手,我正在尝试从文件中读取数据并将其保存在列表中,以便以后检索。就像是:

示例.json

{
  "circles": [
    {"x":14,"y":2,"z":4,"r":50},
    {"x":14,"y":2,"z":4,"r":50}
  ]
}

我正在寻找的是:

var circle_list = []
circle_lst = some_function_which_reads_json_from_file('sample.json')
//Now circle list contains
circle_list = [
  {"x":14,"y":2,"z":4,"r":50},
  {"x":14,"y":2,"z":4,"r":50}
]

稍后我可以做类似的事情:

for (var i = 0; i <circle_list.lenght;i++){
  //do osmething
}

我正在调查

$.getJSON("sample.json" , function(data){
  //
});

但后来我知道这个调用是异步的......但我需要保持执行顺序。

4

1 回答 1

2

不要维护执行顺序。这将在获取期间锁定浏览器。仅将其用作绝对的最后手段:

var circle_list;
$.ajax({'dataType': 'json', url: 'sample.json', 'async': false})
    .done(function(json) {
        circle_list = json;
});

相反,您至少可以做几件事:

  1. 使用回调。由于延期,它不必都在一个地方。
  2. 将 JSON 与页面的其余部分一起加载并从 DOM 中获取。
于 2013-02-24T00:38:46.353 回答