如何使用getJSON从文件中获取JSON数组
How to get JSON array from file with getJSON?
如何使用javascript和jquery 获取json文件的数组json
我正在研究下一个代码,但它不起作用:
var questions = [];
function getArray(){
$.getJSON('questions.json', function (json) {
for (var key in json) {
if (json.hasOwnProperty(key)) {
var item = json[key];
questions.push({
Category: item.Category
});
}
}
return questions;
})
}
这是一个名为:questions.json 的json文件
{
"Biology":{
"Category":{
"cell":{
"question1":{
"que1":"What is the cell?"
},
"option1":{
"op1":"The cell is the basic structural and functional unit",
"op2":"is a fictional supervillain in Dragon Ball"
},
"answerswer1":"opt1"
}
}
},
"Astronomy":{
"Category":{
"Mars":{
"question1":{
"que1":"How many moons does Mars?"
},
"option1":{
"op1":"5",
"op2":"2"
},
"answerswer1":"opt2"
}
}
}
}
我想得到一个这样格式的数组{Biology:{Category:{cell:{question1….}}}}
$.getJSON
是一个异步函数,因此返回该函数内部的内容不会起任何作用,因为它不在作用域中,或者尚未接收到。你可能应该做一些类似的事情:
function getArray(){
return $.getJSON('questions.json');
}
getArray().done(function(json) {
// now you can use json
var questions = [];
$.each(json, function(key, val) {
questions[key] = { Category: val.Category };
});
});
for
循环中的条件阻止任何内容添加到数组中。相反,检查json对象是否具有该属性,然后获取值并将其添加到数组中。换句话说:
if (questions.hasOwnProperty(key))
应为if (json.hasOwnProperty(key))
此外,您不能简单地return
这样的AJAX调用的结果,因为该方法是异步运行的。return
实际上应用于内部success
函数回调,而不是getArray
。您必须使用回调模式,以便只在收到数据后才传递数据,并对其进行相应的操作。
(当然,由于数组是在外部作用域中定义的,所以无论如何都不必返回它,但如果您试图在AJAX方法结束之前使用它,它将是空的。)
假设您要使用名为renderJSON
:的方法将其呈现到DOM
var questions = [];
function getArray(){
$.getJSON('questions.json', function (json) {
for (var key in json) {
if (json.hasOwnProperty(key)) {
var item = json[key];
questions.push({
Category: item.Category
});
}
}
renderJSON(questions);
});
}
相关文章:
- 如何使用 Node JS 获取 JSON 嵌套数组值
- 使用Javascript/JQuery获取JSON GET数据
- 在jQuery中获取JSON
- 如何使用jQuery按键搜索和获取json行数据
- 如何使用jquery获取Json的节点
- 通过字符串获取JSON对象
- 通过Azure存储以HTML形式获取JSON文件
- 获取JSON并使用Javascript解析为字符串
- 如何在angular中获取json对象的名称
- 如何使用angular获取json对象的名称
- 如何使用Ajax JQuery.ech()获取JSON值
- 可以't通过从googlemapapi获取json值
- 获取json结果的身份验证问题
- Javascript:获取 JSON 中的值计数
- 按服务获取JSON数据
- 如何使用javascript获取json元素
- 从javascript文件中获取JSON,并使用NodeJS在路由文件中显示
- 如何从给定的代码中获取JSON对象
- 获取 JSON 数据将数组项添加到变量
- 如何从具有动态可观察属性的淘汰对象中获取 JSON 字符串