有什么方法可以从JSON文件中获取数据并将它们保存到JavaScript中的多维数组中。 JSON文件是.php文件,标头设置为JSON。
我到目前为止已尝试过:
var questionJSONS="";
$(document).ready(function(){
var questionJ="";
$.getJSON("http://localhost:8080/audioMillionaire/test2.php",function(result){
$.each(result, function(i, item){
questionJ+= "['"+result[i].qid+"','"+result[i].description+"','"+result[i].a+"']";
});
setArray(questionJ);
});
});
还有很多其他的东西,但它们似乎都没有用。
答案 0 :(得分:1)
在您的示例中,questionJ
被视为一个字符串,并且没有看到您的setArray()
功能,很难确定哪些错误(我不&# 39;知道你是否正在解析这个函数中的字符串,例如)。
但是,假设您希望questionJ
成为数组数组,则以下内容应该有效:
questionJSONS = [ ];
$.getJSON('http://localhost:8080/audioMillionaire/test2.php', function(result){
$.each(result, function() {
questionJSONS.push( [ this.qid, this.description, this.a ] );
});
});
请注意,在$.each
函数中,您可以引用this
,它引用当前迭代的项目。直接使用此方法(带有push()
和数组数据结构),数据类型也会从JSON中保留。
此外,由于您没有直接与代码段内的DOM进行交互,因此无需将其包含在DOMReady
处理程序中。
答案 1 :(得分:1)
我认为这就是你的意思:
$(document).ready(function() {
var questions = [];
$.getJSON("http://localhost:8080/audioMillionaire/test2.php", function(result) {
$.each(result, function(i, item) {
questions.push([result[i].qid, result[i].description, result[i].a]);
});
});
});
如果没有,请发表评论。
修改:BenM更快
编辑:
这也可行,但我不能在$ .getJSON
之外使用该数组
这是因为你可能正在使用这样的代码:
...
questions.push([result[i].qid, result[i].description, result[i].a]);
});
});
console.log(questions);
因为javascript是一种异步语言,所以在请求json之后推送控制台日志调用。您可以阅读更多相关信息here。
$(document).ready(function() {
console.log("set test to old");
var test = "old";
setTimeout(function() {
console.log("set test to new");
test = "new";
console.log("inside timeout: " + test);
}, 3000); // runs in 3 seconds
console.log("outside timeout: " + test);
});
这段代码应该提供一个很好的例子。函数setTimeout只等待3秒并运行该函数(很像json请求)。
知道这一点你应该自己找到一个解决方案(比如在推送数组后调用传递的函数)。如果没有评论。
编辑:更改了其他更好页面的链接。