【发布时间】:2013-04-29 21:15:43
【问题描述】:
我刚刚开始使用 javascript 和 json。
在处理 javascript 函数中的事件时,我需要从 json 文件中读取数据(getInformation 函数)。所以我需要它是同步的。我不知道我是否在代码中遗漏了一些东西,或者我是否必须创建一个请求并处理回调,或者我是否需要导入额外的 javascript 来使用 json。因为我不知道如何让它工作。它不起作用,因为最后数组是空的。感谢您提供任何帮助。
json文件:
{"Users": [
{"Name": "Jane",
"Points": 67,
"age": 23},
{
"Name": "Sam",
"Points": 65,
"age": 21}
]}
选项 1 - 由另一个正在处理事件的函数调用的函数:
var getInformation = function()
{
var path = "./data/users.json";
var informationArray= [];
console.log("Loading ....");
$.getJSON(path, function(data)
{
$.each(data, function(key, val)
{
informationArray.push(key + '-' + val);
});
});
return informationArray;
}
选项 2 - 由另一个正在处理事件的函数调用的函数:
var getInformation = function() {
var path = "./data/users.json";
var informationArray= [];
$.ajax({
url: path,
async: false,
dataType: 'json',
success: function(response) {
$.each(response.items,
function(item) {
informationArray.push(item);
});
informationArray.push("success");
}
});
return informationArray; }
我看到了以下线程并尝试了其中的内容,但对我不起作用。我想知道我的代码哪里出了问题,或者是否需要任何特殊配置。
线程:Is there a version of $getJSON that doesn't use a call back?
【问题讨论】:
-
问题是什么?什么不工作?
-
当您说您正在尝试解析本地文件时,您是指在客户端还是服务器上?如果它在服务器上,则需要使用文件的 URL 而不是路径。
-
JSON 是动态生成的,还是来自
.json文件?因为 JSON 只是 JavaScript,所以它也可以像脚本一样被加载,并存储在本地内存中进行交互。只是一个想法。 -
问题是哪里出错了,因为我打算包含json文件数据的数组在函数末尾是空的。我的意思是解析或访问 json 文件的元素。它不是动态的,是固定的信息。服务器中的本地json文件是的,我应该如何指定url?很好,如何加载脚本来动态存储,不会导致效率问题?
-
我真的不明白为什么请求需要同步。服务器通信始终应该是异步的。
标签: javascript ajax json